]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/34113 (ICE in get_addr_dereference_operands, at tree-ssa...
authorRichard Guenther <rguenther@suse.de>
Fri, 16 Nov 2007 13:14:03 +0000 (13:14 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 16 Nov 2007 13:14:03 +0000 (13:14 +0000)
2007-11-16  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/34113
* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
Use correct conversion direction for checking type compatibility.

* gcc.c-torture/compile/pr34113.c: New testcase.

From-SVN: r130223

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr34113.c [new file with mode: 0644]
gcc/tree-ssa-forwprop.c

index 80dac9c59107f679bb2a5b5e78553dc35118caa4..2dc455330689994c29751f40b2975a8999d3b712 100644 (file)
@@ -1,3 +1,9 @@
+2007-11-16  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/34113
+       * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
+       Use correct conversion direction for checking type compatibility.
+
 2007-11-16  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/34099
index 9c84667f81fab4f994718d3fbd5d7e5c63cc1f47..46fd19a8110bd520513ab0353a44c19859117d1e 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-16  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/34113
+       * gcc.c-torture/compile/pr34113.c: New testcase.
+
 2007-11-16  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/34099
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34113.c b/gcc/testsuite/gcc.c-torture/compile/pr34113.c
new file mode 100644 (file)
index 0000000..7694b82
--- /dev/null
@@ -0,0 +1,11 @@
+struct sockaddr_in { int sin_addr; };
+static void ConvertAddr (struct sockaddr_in *saddr, void **addr)
+{
+  *addr = (void *) &saddr->sin_addr;
+}
+unsigned char EnableLocalHost (struct sockaddr_in *ifa_addr)
+{
+  unsigned char * addr;
+  ConvertAddr(ifa_addr, (void **)&addr);
+  return addr[0];
+}
index bacd34e7f4dcee6bc027bf740d5464ac25ad0cc2..661d3d2a240209e8e1b05ee90c6fa31b2fb8f7d3 100644 (file)
@@ -959,8 +959,8 @@ tree_ssa_forward_propagate_single_use_vars (void)
                       || TREE_CODE (rhs) == CONVERT_EXPR)
                      && TREE_CODE (TREE_OPERAND (rhs, 0)) == ADDR_EXPR
                      && POINTER_TYPE_P (TREE_TYPE (rhs))
-                     && useless_type_conversion_p (TREE_TYPE (TREE_TYPE (rhs)),
-                                                   TREE_TYPE (TREE_TYPE (TREE_OPERAND (rhs, 0))))))
+                     && useless_type_conversion_p (TREE_TYPE (TREE_TYPE (TREE_OPERAND (rhs, 0))),
+                                                   TREE_TYPE (TREE_TYPE (rhs)))))
                {
                  if (forward_propagate_addr_expr (lhs, rhs))
                    {
This page took 0.163815 seconds and 5 git commands to generate.