re PR middle-end/24362 (internal compiler error: in extract_component, at tree-comple...
authorAndrew Pinski <pinskia@physics.uc.edu>
Fri, 28 Oct 2005 14:26:36 +0000 (14:26 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Fri, 28 Oct 2005 14:26:36 +0000 (07:26 -0700)
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.

From-SVN: r105930

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/opt/complex4.C [new file with mode: 0644]
gcc/tree-complex.c

index 3fed47ddcb9bf0a881532d5174c8bbc07b48f048..a1d36b93720aa31d783f8ec50ae5b9e570454dca 100644 (file)
@@ -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
index a59b5495f4c0aba4387df2cc95100448888b7988..7d844ac2105e745a890fc3faea1667c6232f097f 100644 (file)
@@ -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 (file)
index 0000000..d6a0be2
--- /dev/null
@@ -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;
+}
+
index de231191824d61cd258ee6d3ae101d42ab94e1da..7fc7879384e394f5e199387afc4535d143695e61 100644 (file)
@@ -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: