https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96465
Bug ID: 96465 Summary: ICE in tsubst_function_decl, at cp/pt.c:13669 Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: error-recovery, ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: haoxintu at gmail dot com Target Milestone: --- Hi, all. This code, similar with bug 96464 code, makes GCC-7.1 onwards versions ICE or "confused by earlier errors". It seems that GCC have some room to enhance its error-recovery on this case. Input //small.cc void foo(){ auto var = [] (class b<auto>...) {}; } Command: g++ small.cc Output: small.cc: In function ‘void foo()’: small.cc:2:26: error: ‘b’ is not a class template 2 | auto var = [] (class b<auto>...) {}; | ^ small.cc:1:6: internal compiler error: in tsubst_function_decl, at cp/pt.c:13669 1 | void foo(){ | ^~~ 0x66004a tsubst_function_decl ../../gcc/cp/pt.c:13669 0xa00832 tsubst_decl ../../gcc/cp/pt.c:14216 0xa0c74f lookup_template_class_1 ../../gcc/cp/pt.c:9852 0xa0e813 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../gcc/cp/pt.c:10139 0xa0e813 tsubst_aggr_type ../../gcc/cp/pt.c:13395 0x9c94ef cp_parser_parameter_declaration ../../gcc/cp/parser.c:22961 0x9c9a82 cp_parser_parameter_declaration_list ../../gcc/cp/parser.c:22681 0x9c9e81 cp_parser_parameter_declaration_clause ../../gcc/cp/parser.c:22608 0x9ca993 cp_parser_lambda_declarator_opt ../../gcc/cp/parser.c:11134 0x9b0831 cp_parser_lambda_expression ../../gcc/cp/parser.c:10665 0x9b18b0 cp_parser_primary_expression ../../gcc/cp/parser.c:5475 0x9bbdd5 cp_parser_postfix_expression ../../gcc/cp/parser.c:7328 0x99daaa cp_parser_binary_expression ../../gcc/cp/parser.c:9641 0x99f83e cp_parser_assignment_expression ../../gcc/cp/parser.c:9946 0x99e3bd cp_parser_constant_expression ../../gcc/cp/parser.c:10240 0x99ebe1 cp_parser_initializer_clause ../../gcc/cp/parser.c:23312 0x9a391c cp_parser_initializer ../../gcc/cp/parser.c:23250 0x9cc4ab cp_parser_init_declarator ../../gcc/cp/parser.c:20943 0x9ac3cc cp_parser_simple_declaration ../../gcc/cp/parser.c:13811 0x9ae42d cp_parser_declaration_statement ../../gcc/cp/parser.c:13249 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. My GCC version is Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/home/haoxin/corpus-compilers/gcc-trunk/gcc-master/build/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../configure --prefix=/home/haoxin/corpus-compilers/gcc-trunk/gcc-master/build/ --enable-languages=c,c++ CC=gcc CXX=g++ Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.0.0 20200801 (experimental) (GCC) Thanks, Haoxin