[Bug c++/79653] [5/6/7 Regression] ICE on invalid c++ code in cp_check_const_attributes in cp/decl2.c:1423

mpolacek at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Feb 22 16:56:00 GMT 2017


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

--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
I came up with another testcase that triggers a similar ICE:

template <typename... T>
struct A { alignas(int...) char c; };

A<int, double> a;

q.cc:2:23: error: expansion pattern ‘#‘tree_list’ not supported by
dump_expr#<expression error>’ contains no argument packs
 struct A { alignas(int...) char c; };
                       ^~~
q.cc:2:33: internal compiler error: tree check: expected tree_list, have
error_mark in is_late_template_attribute, at cp/decl2.c:1119
 struct A { alignas(int...) char c; };
                                 ^
0x14b8fcc tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        /home/marek/src/gcc/gcc/tree.c:9815
0x7911d6 tree_check(tree_node*, char const*, int, char const*, tree_code)
        /home/marek/src/gcc/gcc/tree.h:3064
0x8e008a is_late_template_attribute
        /home/marek/src/gcc/gcc/cp/decl2.c:1119
0x8e02c0 splice_template_attributes
        /home/marek/src/gcc/gcc/cp/decl2.c:1179
0x8e040e save_template_attributes
        /home/marek/src/gcc/gcc/cp/decl2.c:1205
0x8e13f4 cplus_decl_attributes(tree_node**, tree_node*, int)
        /home/marek/src/gcc/gcc/cp/decl2.c:1420
0x8df76d grokfield(cp_declarator const*, cp_decl_specifier_seq*, tree_node*,
bool, tree_node*, tree_node*)
        /home/marek/src/gcc/gcc/cp/decl2.c:951
0x9353d7 cp_parser_member_declaration
        /home/marek/src/gcc/gcc/cp/parser.c:23414
0x9346d3 cp_parser_member_specification_opt
        /home/marek/src/gcc/gcc/cp/parser.c:22963
0x932255 cp_parser_class_specifier_1
        /home/marek/src/gcc/gcc/cp/parser.c:22116
0x933010 cp_parser_class_specifier
        /home/marek/src/gcc/gcc/cp/parser.c:22368
0x926d42 cp_parser_type_specifier
        /home/marek/src/gcc/gcc/cp/parser.c:16441
0x921b93 cp_parser_decl_specifier_seq
        /home/marek/src/gcc/gcc/cp/parser.c:13352
0x93b331 cp_parser_single_declaration
        /home/marek/src/gcc/gcc/cp/parser.c:26646
0x93a5f5 cp_parser_template_declaration_after_parameters
        /home/marek/src/gcc/gcc/cp/parser.c:26337
0x93b1c9 cp_parser_explicit_template_declaration
        /home/marek/src/gcc/gcc/cp/parser.c:26573
0x93b223 cp_parser_template_declaration_after_export
        /home/marek/src/gcc/gcc/cp/parser.c:26591
0x923dbb cp_parser_template_declaration
        /home/marek/src/gcc/gcc/cp/parser.c:14693
0x9200b0 cp_parser_declaration
        /home/marek/src/gcc/gcc/cp/parser.c:12467
0x91fe19 cp_parser_declaration_seq_opt
        /home/marek/src/gcc/gcc/cp/parser.c:12394
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.


More information about the Gcc-bugs mailing list