https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120269

            Bug ID: 120269
           Summary: ICE: tree check: expected class type, have exceptional
                    (error_mark) in c_parser_generic_selection, at
                    c/c-parser.cc:9270
           Product: gcc
           Version: 13.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rundongyang22 at m dot fudan.edu.cn
  Target Milestone: ---

Created attachment 61421
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61421&action=edit
C source file to reproduce the ICE

----------
GCC Version & System Type & Configure Option
$ $CC -v
Using built-in specs.
COLLECT_GCC=/home/liuyu/Desktop/gcc-13/bin/gcc
COLLECT_LTO_WRAPPER=/home/liuyu/Desktop/gcc-13/bin/../libexec/gcc/x86_64-pc-linux-gnu/13.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --disable-multilib --enable-languages=c,c++
--prefix=/home/liuyu/Desktop/bin
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.1.0 (GCC)

----------
Compiler Output
$ $CC ./17917.c 
./17917.c: In function ‘main’:
./17917.c:29:18: error: expected identifier or ‘(’ before ‘[’ token
   29 |         processes[i].running = false;
      |                  ^
./17917.c:40:18: error: expected identifier or ‘(’ before ‘[’ token
   40 |         processes[i] = p;
      |                  ^
./17917.c:45:13: error: expected expression before ‘processes’
   45 |         if (processes[i].running)
      |             ^~~~~~~~~
./17917.c:22:30: error: expected expression before ‘,’ token
   22 | #define check(r) _Generic((r),\
      |                              ^~
   23 |     Process: checkPrinter,\
      |                               
./17917.c:46:13: note: in expansion of macro ‘check’
   46 |             check(processes[i]);
      |             ^~~~~
./17917.c:22:30: internal compiler error: tree check: expected class ‘type’,
have ‘exceptional’ (error_mark) in c_parser_generic_selection, at
c/c-parser.cc:9270
   22 | #define check(r) _Generic((r),\
      |                              ^~
   23 |     Process: checkPrinter,\
      |                               
./17917.c:46:13: note: in expansion of macro ‘check’
   46 |             check(processes[i]);
      |             ^~~~~
0x19dcb2a tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        ../../gcc/tree.cc:8931
0xc3ae27 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
        ../../gcc/tree.h:3663
0xce59cc c_parser_generic_selection
        ../../gcc/c/c-parser.cc:9270
0xceb507 c_parser_postfix_expression
        ../../gcc/c/c-parser.cc:10790
0xce42a9 c_parser_unary_expression
        ../../gcc/c/c-parser.cc:8831
0xce345b c_parser_cast_expression
        ../../gcc/c/c-parser.cc:8672
0xce133e c_parser_binary_expression
        ../../gcc/c/c-parser.cc:8440
0xce08c2 c_parser_conditional_expression
        ../../gcc/c/c-parser.cc:8138
0xce04d2 c_parser_expr_no_commas
        ../../gcc/c/c-parser.cc:8052
0xced7e6 c_parser_expression
        ../../gcc/c/c-parser.cc:11379
0xcedb24 c_parser_expression_conv
        ../../gcc/c/c-parser.cc:11419
0xcdcce5 c_parser_statement_after_labels
        ../../gcc/c/c-parser.cc:6781
0xcdd0b3 c_parser_if_body
        ../../gcc/c/c-parser.cc:6887
0xcdd48f c_parser_if_statement
        ../../gcc/c/c-parser.cc:7011
0xcdc587 c_parser_statement_after_labels
        ../../gcc/c/c-parser.cc:6622
0xcdbc17 c_parser_compound_statement_nostart
        ../../gcc/c/c-parser.cc:6296
0xcdb4fa c_parser_compound_statement
        ../../gcc/c/c-parser.cc:6105
0xcdc4ea c_parser_statement_after_labels
        ../../gcc/c/c-parser.cc:6616
0xcdc3cf c_parser_statement
        ../../gcc/c/c-parser.cc:6587
0xcdcf43 c_parser_c99_block_statement
        ../../gcc/c/c-parser.cc:6846
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to