[Bug c++/84694] New: internal compiler error: tree check: expected tree that contains 'decl minimal' structure, have 'identifier_node' in do_friend, at cp/friend.c:498
vegard.nossum at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Mar 3 21:50:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84694
Bug ID: 84694
Summary: internal compiler error: tree check: expected tree
that contains 'decl minimal' structure, have
'identifier_node' in do_friend, at cp/friend.c:498
Product: gcc
Version: 8.0.1
Status: UNCONFIRMED
Keywords: ice-on-invalid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: vegard.nossum at gmail dot com
CC: webrown.cpp at gmail dot com
Target Milestone: ---
Input:
template<typename>
struct a {
template<a()> void b();
friend b<>();
}
Output:
$ xgcc -x c++ -S -
<stdin>:4:14: error: ISO C++ forbids declaration of 'b' with no type
[-fpermissive]
<stdin>:4:14: internal compiler error: tree check: expected tree that contains
'decl minimal' structure, have 'identifier_node' in do_friend, at
cp/friend.c:498
0x66106d tree_contains_struct_check_failed(tree_node const*,
tree_node_structure_enum, char const*, int, char const*)
/home/vegard/git/gcc/gcc/tree.c:9509
0xcefe59 contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
/home/vegard/git/gcc/gcc/tree.h:3246
0xcefe59 do_friend(tree_node*, tree_node*, tree_node*, tree_node*,
overload_flags, bool)
/home/vegard/git/gcc/gcc/cp/friend.c:498
0xc13c1d grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
/home/vegard/git/gcc/gcc/cp/decl.c:12203
0xc5a1c9 grokfield(cp_declarator const*, cp_decl_specifier_seq*, tree_node*,
bool, tree_node*, tree_node*)
/home/vegard/git/gcc/gcc/cp/decl2.c:829
0xfe26da cp_parser_member_declaration
/home/vegard/git/gcc/gcc/cp/parser.c:23893
0xf1871b cp_parser_member_specification_opt
/home/vegard/git/gcc/gcc/cp/parser.c:23372
0xf1871b cp_parser_class_specifier_1
/home/vegard/git/gcc/gcc/cp/parser.c:22514
0xf2763b cp_parser_class_specifier
/home/vegard/git/gcc/gcc/cp/parser.c:22766
0xf2763b cp_parser_type_specifier
/home/vegard/git/gcc/gcc/cp/parser.c:16772
0xf8c7ba cp_parser_decl_specifier_seq
/home/vegard/git/gcc/gcc/cp/parser.c:13627
0xfa6ddf cp_parser_single_declaration
/home/vegard/git/gcc/gcc/cp/parser.c:27185
0xfc9658 cp_parser_template_declaration_after_parameters
/home/vegard/git/gcc/gcc/cp/parser.c:26874
0xfc7c5b cp_parser_explicit_template_declaration
/home/vegard/git/gcc/gcc/cp/parser.c:27112
0xfc7c5b cp_parser_template_declaration_after_export
/home/vegard/git/gcc/gcc/cp/parser.c:27130
0x10029c1 cp_parser_declaration
/home/vegard/git/gcc/gcc/cp/parser.c:12727
0xff9d9b cp_parser_declaration_seq_opt
/home/vegard/git/gcc/gcc/cp/parser.c:12654
0xffb3c3 cp_parser_translation_unit
/home/vegard/git/gcc/gcc/cp/parser.c:4561
0xffb3c3 c_parse_file()
/home/vegard/git/gcc/gcc/cp/parser.c:38993
0x15a7105 c_common_parse_file()
/home/vegard/git/gcc/gcc/c-family/c-opts.c:1132
$ xgcc --version
xgcc (GCC) 8.0.1 20180303 (experimental)
Built from git 0d86c284d085d29782d862600a79aa1ff0ee0c47 (r258221).
7.3.0 says:
<source>:4:14: error: ISO C++ forbids declaration of 'b' with no type
[-fpermissive]
friend b<>();
^
<source>:5:2: error: expected ';' after struct definition
}
^
;
Compiler returned: 1
Test case was minimised by C-Reduce.
More information about the Gcc-bugs
mailing list