[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