/* PR ipa/59722 */ /* { dg-do compile } */ /* { dg-options "-O2 -fcompare-debug" } */ extern void abrt (const char *, int) __attribute__((noreturn)); void baz (int *, int *); static inline int bar (void) { return 1; } static inline void foo (int *x, int y (void)) { while (1) { int a = 0; if (*x) { baz (x, &a); while (a && !y ()) ; break; } abrt ("", 1); } } void test (int x) { foo (&x, bar); foo (&x, bar); }