[Bug c++/68726] New: ice: tree check: expected tree_vec, have error_mark in comp_template_args_with_info, at cp/pt.c:7890
regehr at cs dot utah.edu
gcc-bugzilla@gcc.gnu.org
Sat Dec 5 18:51:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68726
Bug ID: 68726
Summary: ice: tree check: expected tree_vec, have error_mark in
comp_template_args_with_info, at cp/pt.c:7890
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: regehr at cs dot utah.edu
Target Milestone: ---
ICE on invalid code
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/home/regehr/z/compiler-install/gcc-r231259-install/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/regehr/z/compiler-source/gcc/configure
--prefix=/home/regehr/z/compiler-install/gcc-r231259-install
--disable-bootstrap --disable-multilib --enable-languages=c,c++
Thread model: posix
gcc version 6.0.0 20151204 (experimental) (GCC)
$ cat hello.cpp
template <typename> struct A {
template <typename, > struct __construct_helper;
template <typename... _Args>
using __has_construct typename __construct_helper<_Args...>::type;
} struct : A<int> {
$ g++ -w -std=c++11 hello.cpp
hello.cpp:2:23: error: expected identifier before ‘>’ token
template <typename, > struct __construct_helper;
^
hello.cpp:4:25: error: expected ‘=’ before ‘typename’
using __has_construct typename __construct_helper<_Args...>::type;
^~~~~~~~
hello.cpp:5:1: error: expected ‘;’ after struct definition
} struct : A<int> {
^
hello.cpp: In instantiation of ‘struct A<int>’:
hello.cpp:5:12: required from here
hello.cpp:4:68: internal compiler error: tree check: expected tree_vec, have
error_mark in comp_template_args_with_info, at cp/pt.c:7890
using __has_construct typename __construct_helper<_Args...>::type;
^
0xf5cd5c tree_check_failed(tree_node const*, char const*, int, char const*,
...)
/home/regehr/z/compiler-source/gcc/gcc/tree.c:9599
0x5fa12d tree_check
/home/regehr/z/compiler-source/gcc/gcc/tree.h:2997
0x5fa12d comp_template_args_with_info
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:7890
0x63ada2 comp_template_args
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:7916
0x63ada2 lookup_template_class_1
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:8534
0x63ada2 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int, int)
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:8611
0x63dcd1 tsubst_aggr_type
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:11280
0x625922 tsubst(tree_node*, tree_node*, int, tree_node*)
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:13267
0x62ed4d tsubst_decl
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:12166
0x6261fc tsubst(tree_node*, tree_node*, int, tree_node*)
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:12664
0x62e922 tsubst_decl
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:11506
0x6261fc tsubst(tree_node*, tree_node*, int, tree_node*)
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:12664
0x65aab2 instantiate_class_template_1
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:9976
0x65aab2 instantiate_class_template(tree_node*)
/home/regehr/z/compiler-source/gcc/gcc/cp/pt.c:10253
0x706ccb complete_type(tree_node*)
/home/regehr/z/compiler-source/gcc/gcc/cp/typeck.c:131
0x706ecf complete_type_or_maybe_complain(tree_node*, tree_node*, int)
/home/regehr/z/compiler-source/gcc/gcc/cp/typeck.c:143
0x5ce159 xref_basetypes(tree_node*, tree_node*)
/home/regehr/z/compiler-source/gcc/gcc/cp/decl.c:12806
0x6c74ea cp_parser_class_head
/home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:21525
0x6c74ea cp_parser_class_specifier_1
/home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:20785
0x6c85d9 cp_parser_class_specifier
/home/regehr/z/compiler-source/gcc/gcc/cp/parser.c:21081
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
More information about the Gcc-bugs
mailing list