https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71853
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Funny, trying again now, I can reproduce it again: (gdb) r Starting program: /home/marek/x/trunk/gcc/cc1 -quiet q.c -Wall -W q.c: In function ‘f’: q.c:3:12: error: expected ‘:’ or ‘...’ before ‘{’ token case (0) { ^ q.c:4:12: error: expected ‘(’ before numeric constant switch 0: { } ^ q.c:4:12: warning: statement with no effect [-Wunused-value] Program received signal SIGSEGV, Segmentation fault. 0x0000000000844fc2 in c_do_switch_warnings (cases=0x26ce2b0, switch_location=254533, type=<error reading variable: Cannot access memory at address 0x1>, cond= <error_mark 0x7fffeff22c90>, bool_cond_p=false, outside_range_p=false) at /home/marek/src/gcc/gcc/c-family/c-common.c:6287 6287 if (!type || TREE_CODE (type) != ENUMERAL_TYPE) (gdb) p type $1 = <error reading variable: Cannot access memory at address 0x1> When I tried few hours back, type was error_mark_node.