]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/37078 (ICE in set_value_range, at tree-vrp.c:401 when compiling...
authorRichard Guenther <rguenther@suse.de>
Fri, 22 Aug 2008 21:13:00 +0000 (21:13 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 22 Aug 2008 21:13:00 +0000 (21:13 +0000)
2008-08-22  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/37078
* tree-vrp.c (extract_range_from_unary_expr): Avoid generating
[+INF, +INF] ranges.

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

From-SVN: r139501

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr37078.c [new file with mode: 0644]
gcc/tree-vect-transform.c

index 84e6baa42d8deb74401d426423260273e2a191b2..7d69cf027a6fa17e9f0b0624ff5088ace8b00c58 100644 (file)
@@ -1,3 +1,9 @@
+2008-08-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37078
+       * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
+       [+INF, +INF] ranges.
+
 2008-08-22  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/37143
index 8b41251f29698f6b000c2889a44477178e8a5159..aca1340dab3edd7b81b7a318ba725e5fd8ca1b2e 100644 (file)
@@ -1,3 +1,8 @@
+2008-08-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37078
+       * gcc.c-torture/compile/pr37078.c: New testcase.
+
 2008-08-22  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/37143
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37078.c b/gcc/testsuite/gcc.c-torture/compile/pr37078.c
new file mode 100644 (file)
index 0000000..1cc1659
--- /dev/null
@@ -0,0 +1,6 @@
+int foo (int b)
+{
+  if (b == (int)0x80000000)
+    return __builtin_abs (b);
+  return 0;
+}
index 97366336b7bc6790a86b02f4f0e88011cf50c5f1..c0c299b18fa541cafe1de008eceddf91416e171e 100644 (file)
@@ -7459,7 +7459,8 @@ vect_create_cond_for_align_checks (loop_vec_info loop_vinfo,
       addr_tmp = create_tmp_var (int_ptrsize_type, tmp_name);
       add_referenced_var (addr_tmp);
       addr_tmp_name = make_ssa_name (addr_tmp, NULL);
-      addr_stmt = gimple_build_assign (addr_tmp_name, addr_base);
+      addr_stmt = gimple_build_assign_with_ops (NOP_EXPR, addr_tmp_name,
+                                               addr_base, NULL_TREE);
       SSA_NAME_DEF_STMT (addr_tmp_name) = addr_stmt;
       gimple_seq_add_stmt (cond_expr_stmt_list, addr_stmt);