On 11/08/14 18:03, Richard Biener wrote: > On Sat, Aug 9, 2014 at 2:33 PM, Kugan <kugan.vivekanandara...@linaro.org> > wrote: >> Hi, >> >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52904 >> >> Tescase was generating warning: assuming signed overflow does not occur >> when simplifying conditional to constant [-Wstrict-overflow] due to VRP >> missing the value range. >> >> This seems to have been fixed and the PR is now closed. However, as >> requested there in the PR, I am sending this patch to add the test-case >> to test-suite. >> >> >> Is this OK ? > > Did you verify the testcase fails before the revision that fixed it? > Esp. the placement of the dg-bogus looks bogus to me.
I tried it on Linaro 4.9 (It should be the same in fsf gcc 4.9 branch) and the test cases is failing there. Passes on trunk. In any case, I have moved it to the top and reverified. I have also trimmed the warning pattern to check as there was some changes there from 4.9 to trunk. > > Also don't use -S in dg-options, use lower-case filenames and > avoid spurious vertical white-space. The VRP dump scan is > also very unspecific - I suggest to drop it entirely. > Done. Is this OK? Thanks, Kugan gcc/testsuite 2014-08-12 Kugan Vivekanandarajah <kug...@linaro.org> PR tree-optimization/52904 * gcc.dg/pr52904.c: New test. > Thanks, > Richard. > >> Thanks, >> Kugan >> >> gcc/testsuite >> >> >> 2014-08-09 Kugan Vivekanandarajah <kug...@linaro.org> >> >> PR tree-optimization/52904 >> * gcc.dg/PR52904.c: New test.
diff --git a/gcc/testsuite/gcc.dg/pr52904.c b/gcc/testsuite/gcc.dg/pr52904.c index e69de29..7c04187 100644 --- a/gcc/testsuite/gcc.dg/pr52904.c +++ b/gcc/testsuite/gcc.dg/pr52904.c @@ -0,0 +1,24 @@ + +/* { dg-do compile } */ +/* { dg-options "-Wstrict-overflow -O2" } */ +/* { dg-bogus "assuming signed overflow does not occur when simplifying" */ + +extern int foo (int); + +int +wait_reading_process_output (void) +{ + int nfds = 0; + int channel; + for (channel = 0; channel < 1024; ++channel) + { + if (foo (channel)) + nfds++; + } + + if (nfds < 0) + return 1; + + return 0; +} +