/* { dg-do compile } */
/* { dg-options "-O2 -fdisable-tree-ethread" } */

/* Note: Threader will collapse loop.  */

typedef int int32_t __attribute__((mode (__SI__)));

void bar (int32_t);

void
foo ()
{
 int32_t index = 0;

 for (index; index <= 10; index--) // expected warning here
   /* Result of the following multiply will overflow
      when converted to signed int32_t.  */
   bar ((0xcafe + index) * 0xdead);  /* { dg-warning "iteration \[0-9\]+ invokes undefined behavior" } */
}
