]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Backport "Fix PR64091"
authorTom de Vries <tom@codesourcery.com>
Mon, 25 Jan 2016 14:21:03 +0000 (14:21 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Mon, 25 Jan 2016 14:21:03 +0000 (14:21 +0000)
2016-01-25  Tom de Vries  <tom@codesourcery.com>

backport from trunk:
2014-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/PR64091
* tree-ssa-tail-merge.c (update_debug_stmt): After resetting
the stmt break from the loop over use operands.

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

From-SVN: r232794

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr64091.c [new file with mode: 0644]
gcc/tree-ssa-tail-merge.c

index c452260a7817dcee95f11744465d69c0a4830c70..f2b8fba05cfac63d2824acfddd92bbccf6de3bb1 100644 (file)
@@ -1,3 +1,12 @@
+2016-01-25  Tom de Vries  <tom@codesourcery.com>
+
+       backport from trunk:
+       PR tree-optimization/PR64091
+       2014-11-27  Richard Biener  <rguenther@suse.de>
+
+       * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
+       the stmt break from the loop over use operands.
+
 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        Backport from mainline
index 3288254667a762964d5f0c2e8a615dc03045fe22..3a5be2c9dbe1fd3754e08b65825e36848fe30d21 100644 (file)
@@ -1,3 +1,11 @@
+2016-01-25  Tom de Vries  <tom@codesourcery.com>
+
+       backport from trunk:
+       PR tree-optimization/PR64091
+       2014-11-27  Richard Biener  <rguenther@suse.de>
+
+       * gcc.dg/torture/pr64091.c: New testcase.
+
 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        Backport from mainline
diff --git a/gcc/testsuite/gcc.dg/torture/pr64091.c b/gcc/testsuite/gcc.dg/torture/pr64091.c
new file mode 100644 (file)
index 0000000..0cd994a
--- /dev/null
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-g" } */
+
+extern int foo(void);
+
+int main(void)
+{
+  int i, a, b;
+
+  if (foo())
+    return 0;
+
+  for (i = 0, a = 0, b = 0; i < 3; i++, a++)
+  {
+    if (foo())
+      break;
+
+    if (b += a)
+      a = 0;
+  }
+
+  if (!a)
+    return 2;
+
+  b += a;
+
+  return 0;
+}
index b5165d549feff77d2ffe623bd1cec54a4cb6d5d3..7bcac2f06146c0ee3f13974f2b97b329d8b576d2 100644 (file)
@@ -1618,6 +1618,7 @@ update_debug_stmt (gimple stmt)
 
       gimple_debug_bind_reset_value (stmt);
       update_stmt (stmt);
+      break;
     }
 }