https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77846
--- Comment #1 from denis.campredon at gmail dot com --- I'm pretty sure it is linked the following code, compiled with '-fpermissive' only prints A instead of AB -------------- enum E{ A, B }; class C {public:C(){};}; static inline void f(E e) { if (0) goto out; switch (e) { case A: __builtin_printf("A"); C c; break; case B: __builtin_printf("B"); } out:{} } int main() { f(E::B); f(E::A); return 0; } -----------------