The following reverts the un-XFAILing and adjusts the testcase according to reality (as already noted in testcase comments).
Committed. Richard. 2014-05-23 Richard Biener <rguent...@suse.de> PR testsuite/61266 * gcc.dg/Wstrict-overflow-18.c: Revert un-XFAILing and adjust testcase to reflect reality. Index: gcc/testsuite/gcc.dg/Wstrict-overflow-18.c =================================================================== --- gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (revision 210845) +++ gcc/testsuite/gcc.dg/Wstrict-overflow-18.c (working copy) @@ -1,11 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ -/* Don't warn about an overflow when folding i > 0. The loop analysis - should determine that i does not wrap. - - The test is really bogus, p->a - p->b can be larger than INT_MAX - and thus i can very well wrap. */ +/* Warn about an overflow when folding i > 0, p->a - p->b can be larger + than INT_MAX and thus i can wrap. */ struct c { unsigned int a; unsigned int b; }; extern void bar (struct c *); @@ -17,7 +14,7 @@ foo (struct c *p) for (i = 0; i < p->a - p->b; ++i) { - if (i > 0) /* { dg-bogus "warning" "" } */ + if (i > 0) /* { dg-warning "signed overflow" "" } */ sum += 2; bar (p); }