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

            Bug ID: 96438
           Summary: [10/11 Regression] ICE in do_pushtag, at
                    cp/name-lookup.c:6861
           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, reduced by C-Vise, makes GCC-trunk ICE, while GCC-10 and downwards
versions behave well in error-recovery.

Input:
//small.cc
class A {
    template <class>
        void foo (int (operator struct { union :});
}

Command:
g++ small.cc


Output:
small.cc:3:40: error: types may not be defined in a conversion-type-id
    3 |         void foo (int (operator struct { union :});
      |                                        ^
small.cc:3:42: internal compiler error: in do_pushtag, at cp/name-lookup.c:6861
    3 |         void foo (int (operator struct { union :});
      |                                          ^~~~~
0x641ae8 do_pushtag
        ../../gcc/cp/name-lookup.c:6861
0x641ae8 pushtag(tree_node*, tree_node*, tag_scope)
        ../../gcc/cp/name-lookup.c:6988
0x9030d0 xref_tag(tag_types, tree_node*, tag_scope, bool)
        ../../gcc/cp/decl.c:15085
0x9aa0af cp_parser_class_head
        ../../gcc/cp/parser.c:24698
0x9aa0af cp_parser_class_specifier_1
        ../../gcc/cp/parser.c:23920
0x9aa593 cp_parser_class_specifier
        ../../gcc/cp/parser.c:24294
0x9aa593 cp_parser_type_specifier
        ../../gcc/cp/parser.c:17797
0x9ab50e cp_parser_decl_specifier_seq
        ../../gcc/cp/parser.c:14436
0x9d5570 cp_parser_member_declaration
        ../../gcc/cp/parser.c:25035
0x9a82f8 cp_parser_member_specification_opt
        ../../gcc/cp/parser.c:24890
0x9a82f8 cp_parser_class_specifier_1
        ../../gcc/cp/parser.c:23987
0x9aa593 cp_parser_class_specifier
        ../../gcc/cp/parser.c:24294
0x9aa593 cp_parser_type_specifier
        ../../gcc/cp/parser.c:17797
0x9c0273 cp_parser_type_specifier_seq
        ../../gcc/cp/parser.c:22479
0x9bf53a cp_parser_conversion_type_id
        ../../gcc/cp/parser.c:15154
0x9bf53a cp_parser_conversion_function_id
        ../../gcc/cp/parser.c:15115
0x9bf53a cp_parser_unqualified_id
        ../../gcc/cp/parser.c:6335
0x9b6d07 cp_parser_declarator_id
        ../../gcc/cp/parser.c:22267
0x9b6d07 cp_parser_direct_declarator
        ../../gcc/cp/parser.c:21515
0x9b6d07 cp_parser_declarator
        ../../gcc/cp/parser.c:21149
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

Reply via email to