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);
     }

Reply via email to