]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/35227 (gcc ICEs for functions with unused complex argument)
authorRichard Guenther <rguenther@suse.de>
Sun, 17 Feb 2008 15:06:53 +0000 (15:06 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Sun, 17 Feb 2008 15:06:53 +0000 (15:06 +0000)
2008-02-17  Richard Guenther  <rguenther@suse.de>

PR middle-end/35227
* tree-complex.c (init_parameter_lattice_values): Handle parameters
without default definition.

* gcc.dg/torture/pr35227.c: New testcase.

From-SVN: r132379

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr35227.c [new file with mode: 0644]
gcc/tree-complex.c

index 946eb6a700306695b03b567c3b2b2574ec669883..2b3033e54bc3bdcddb94d9a288b745f450ece298 100644 (file)
@@ -1,3 +1,9 @@
+2008-02-17  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35227
+       * tree-complex.c (init_parameter_lattice_values): Handle parameters
+       without default definition.
+
 2008-02-17  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/35231
index c167949098c6f212c203fb3758f8ae90e0c5e996..7f8b32a72582fc3de31c1aad30066c9b26fa5b3c 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-17  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35227
+       * gcc.dg/torture/pr35227.c: New testcase.
+
 2008-02-17  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/35231
diff --git a/gcc/testsuite/gcc.dg/torture/pr35227.c b/gcc/testsuite/gcc.dg/torture/pr35227.c
new file mode 100644 (file)
index 0000000..d951d25
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+
+mandel(double _Complex C)
+{
+  int py;
+  C = (__extension__ 1.0iF) * (double)py;
+  return cabs(C);  /* { dg-warning "incompatible" } */
+}
+
index a1964ee6813a90544e120b6ea63479b66ac7ce5a..b9c7ebc489ffe4ad27ddce2be97b814c00aa7bb5 100644 (file)
@@ -161,15 +161,14 @@ is_complex_reg (tree lhs)
 static void
 init_parameter_lattice_values (void)
 {
-  tree parm;
+  tree parm, ssa_name;
 
   for (parm = DECL_ARGUMENTS (cfun->decl); parm ; parm = TREE_CHAIN (parm))
-    if (is_complex_reg (parm) && var_ann (parm) != NULL)
-      {
-       tree ssa_name = gimple_default_def (cfun, parm);
-       VEC_replace (complex_lattice_t, complex_lattice_values,
-                    SSA_NAME_VERSION (ssa_name), VARYING);
-      }
+    if (is_complex_reg (parm)
+       && var_ann (parm) != NULL
+       && (ssa_name = gimple_default_def (cfun, parm)) != NULL_TREE)
+      VEC_replace (complex_lattice_t, complex_lattice_values,
+                  SSA_NAME_VERSION (ssa_name), VARYING);
 }
 
 /* Initialize DONT_SIMULATE_AGAIN for each stmt and phi.  Return false if