aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-10-28 14:26:36 +0000
committerAndrew Pinski <pinskia@physics.uc.edu>2005-10-28 14:26:36 +0000
commitf1c3ee87b8d8f475cb5f3474cf06861da3ad5ca8 (patch)
tree9df923cbf9fd37f3bc59f0e5a9f529823f63ed92
parentb363acb274d1fbb8a99ee1a3630b455874dcb3b7 (diff)
2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24362 * g++.dg/opt/complex4.C: New test. 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu> PR middle-end/24362 * tree-complex.c (extract_component): Treat RESULT_DECL like the rest of the decls. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@105930 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/opt/complex4.C16
-rw-r--r--gcc/tree-complex.c1
4 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3fed47ddcb9..a1d36b93720 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/24362
+ * tree-complex.c (extract_component): Treat RESULT_DECL
+ like the rest of the decls.
+
2005-10-25 Eric Botcazou <ebotcazou@adacore.com>
* config/ia64/ia64.c (ia64_output_function_profiler): Emit an
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a59b5495f4c..7d844ac2105 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/24362
+ * g++.dg/opt/complex4.C: New test.
+
2005-10-25 Eric Botcazou <ebotcazou@adacore.com>
* gcc.dg/nested-func-4.c: New test.
diff --git a/gcc/testsuite/g++.dg/opt/complex4.C b/gcc/testsuite/g++.dg/opt/complex4.C
new file mode 100644
index 00000000000..d6a0be2cf1f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/complex4.C
@@ -0,0 +1,16 @@
+// PR 24362
+// { dg-do compile }
+// { dg-options "-O2" }
+
+typedef __complex__ double cdouble;
+cdouble elt_zero();
+const cdouble *pointer();
+
+cdouble trace(void)
+{
+ cdouble output = elt_zero();
+ const cdouble *data = pointer();
+ output += data[1];
+ return output;
+}
+
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index de231191824..7fc7879384e 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -558,6 +558,7 @@ extract_component (block_stmt_iterator *bsi, tree t, bool imagpart_p,
return TREE_OPERAND (t, imagpart_p);
case VAR_DECL:
+ case RESULT_DECL:
case PARM_DECL:
case INDIRECT_REF:
case COMPONENT_REF: