On reflection, I'm not so sure about these anymore: On Mon, Nov 04, 2024 at 06:26:47PM -0500, Marek Polacek wrote: > + switch (extern int i = 0); /* { dg-error "in condition|both .extern. and > initializer" } */
I think this is definitely valid. > + switch (register int i = 0); /* { dg-error "in condition" } */ > + switch (static int i = 0); /* { dg-error "in condition" } */ > + switch (thread_local int i = 0); /* { dg-error "in > condition|function-scope" } */ All three may be valid, actually. > + switch (typedef int i); /* { dg-error "in condition|initializer" } */ > + switch (typedef int i = 0); /* { dg-error "in condition|initialized" } */ Both remain invalid. Joseph, let me know if you agree, and I'll adjust the patch. Thanks. Marek