https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118077
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a semi-cleaned up testcase without a special name (_setjmp) being involved: ``` int f() __attribute__((returns_twice)); struct c1 { virtual int bb(void) const { return 0; } bool f1(int a) { return a && !bb(); } }; struct c2 final : c1 { void f2(int); }; void c2::f2(int a) { if (!f1(a)) f(); } ```