/* { dg-do compile } */
/* { dg-options "-Winline -O2" } */
-void do_something_evil (void);
+int do_something_evil (void);
inline __attribute__ ((always_inline)) void
q2(void)
-{ /* { dg-error "recursive" "" } */
- do_something_evil ();
- q2(); /* { dg-error "called from here" "" } */
- q2(); /* { dg-error "called from here" "" } */
+{ /* { dg-message "recursive" "" } */
+ if (do_something_evil ())
+ return;
+ q2(); /* { dg-message "called from here" "" } */
+ q2(); /* With -O2 we don't warn here, it is eliminated by tail recursion. */
}