This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/71853] [6/7 regression] ICE on an ill-formed case statement in c_do_switch_warnings


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]