aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr57656.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-03-18 08:46:21 +0000
committerRichard Biener <rguenther@suse.de>2014-03-18 08:46:21 +0000
commit563f17debfe1bf5e72a491de90f03ea0a5fb9dcf (patch)
treee2544fb02f576ff4aa20a3989053ea8eb1fb6761 /gcc/testsuite/gcc.dg/torture/pr57656.c
parent67ba6981d28a02e29d205a40813fdf7a1e1e3473 (diff)
2014-03-18 Richard Biener <rguenther@suse.de>
Backport from mainline 2013-08-27 Richard Biener <rguenther@suse.de> PR tree-optimization/57521 * tree-if-conv.c (if_convertible_bb_p): Verify that at least one edge is non-critical. (find_phi_replacement_condition): Make sure to use a non-critical edge. Cleanup and remove old bug workarounds. (bb_postdominates_preds): Remove. (if_convertible_loop_p_1): Do not compute post-dominators. (combine_blocks): Do not free post-dominators. (main_tree_if_conversion): Likewise. * gcc.dg/torture/pr57521.c: New testcase. 2013-09-03 Richard Biener <rguenther@suse.de> PR middle-end/57656 * fold-const.c (negate_expr_p): Fix division case. (negate_expr): Likewise. * gcc.dg/torture/pr57656.c: New testcase. 2013-11-19 Richard Biener <rguenther@suse.de> PR tree-optimization/57517 * tree-predcom.c (combinable_refs_p): Verify the combination is always executed when the refs are. * gfortran.fortran-torture/compile/pr57517.f90: New testcase. * gcc.dg/torture/pr57517.c: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208632 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/torture/pr57656.c')
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr57656.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr57656.c b/gcc/testsuite/gcc.dg/torture/pr57656.c
new file mode 100644
index 00000000000..4f3645e4693
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr57656.c
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+/* { dg-options "-fstrict-overflow" } */
+
+int main (void)
+{
+ int a = -1;
+ int b = __INT_MAX__;
+ int c = 2;
+ int t = 1 - ((a - b) / c); // t = 1 - ( __INT_MIN__ / 2 )
+ if (t != (1 - (-1 - __INT_MAX__) / 2))
+ __builtin_abort();
+ return 0;
+}