https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106929
Bug ID: 106929 Summary: declaration in switch-case doesn't fail since GCC 11 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: sigmaepsilon92 at gmail dot com Target Milestone: --- this code should fail because declarations inside switch-cases aren't allowed without {}: void fn(int a) { switch (a) { case 0: int c = 5; break; } } Starting with gcc 11 this doesn't fail to compile anymore though. The expected error message would look like this: <source>: In function 'fn': <source>:4:13: error: a label can only be part of a statement and a declaration is not a statement 4 | int c = 5; | ^~~ Compiler returned: 1