diff options
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/undefined-loop-2.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b74165e..ef6a8aa 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2014-12-24 Andrew Stubbs <ams@codesourcery.com> + + PR testsuite/64032 + * gcc.dg/undefined-loop-2.c: Don't allow GCC to optimize away the + loop exits too early. + 2014-12-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/63985 diff --git a/gcc/testsuite/gcc.dg/undefined-loop-2.c b/gcc/testsuite/gcc.dg/undefined-loop-2.c index dbea62c..7ab37f4 100644 --- a/gcc/testsuite/gcc.dg/undefined-loop-2.c +++ b/gcc/testsuite/gcc.dg/undefined-loop-2.c @@ -15,8 +15,11 @@ foo (int p) (p ? array1[i] /* { dg-message "note: possible undefined statement is here" } */ : array2[i]) /* { dg-message "note: possible undefined statement is here" } */ - && i < 5 /* { dg-warning "loop exit may only be reached after undefined behavior" } */ && i < 100; /* { dg-warning "loop exit may only be reached after undefined behavior" } */ i++) - doSomething(array1[i]); + { + if (i >= 5) /* { dg-warning "loop exit may only be reached after undefined behavior" } */ + break; + doSomething(array1[i]); + } } |