From: Tom de Vries Date: Mon, 25 Jan 2016 14:21:03 +0000 (+0000) Subject: Backport "Fix PR64091" X-Git-Tag: releases/gcc-4.9.4~376 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1898eb42cc4ec9c5b209b4803df20374f172ac61;p=thirdparty%2Fgcc.git Backport "Fix PR64091" 2016-01-25 Tom de Vries backport from trunk: 2014-11-27 Richard Biener 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c452260a7817..f2b8fba05cfa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2016-01-25 Tom de Vries + + backport from trunk: + PR tree-optimization/PR64091 + 2014-11-27 Richard Biener + + * tree-ssa-tail-merge.c (update_debug_stmt): After resetting + the stmt break from the loop over use operands. + 2016-01-22 Kyrylo Tkachov Backport from mainline diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3288254667a7..3a5be2c9dbe1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2016-01-25 Tom de Vries + + backport from trunk: + PR tree-optimization/PR64091 + 2014-11-27 Richard Biener + + * gcc.dg/torture/pr64091.c: New testcase. + 2016-01-22 Kyrylo Tkachov 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 index 000000000000..0cd994aede88 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr64091.c @@ -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; +} diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c index b5165d549fef..7bcac2f06146 100644 --- a/gcc/tree-ssa-tail-merge.c +++ b/gcc/tree-ssa-tail-merge.c @@ -1618,6 +1618,7 @@ update_debug_stmt (gimple stmt) gimple_debug_bind_reset_value (stmt); update_stmt (stmt); + break; } }