[Bug c++/91098] New: [10 Regression] internal compiler error: tree check: expected var_decl or field_decl or function_decl or type_decl or template_decl, have using_decl in build_deduction_guide, at cp/pt.c:27167

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jul 5 20:11:00 GMT 2019


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

            Bug ID: 91098
           Summary: [10 Regression] internal compiler error: tree check:
                    expected var_decl or field_decl or function_decl or
                    type_decl or template_decl, have using_decl in
                    build_deduction_guide, at cp/pt.c:27167
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

This was rejected by GCC 9 but gives an ICE with trunk:

// { dg-options "-std=gnu++17" }
template<typename T, bool = true>
struct base;

template<typename T>
struct base<T, true>
{
  base(T& t) : p(&t) { }
  base(const base&) = delete;
  T* p;
};

template<typename T>
struct atomic_ref : base<T>
{
  using base<T>::base;
};

int main()
{
  int i = 0;
  atomic_ref r(i);
}

ctad_ice.cc: In function 'int main()':
ctad_ice.cc:22:17: internal compiler error: tree check: expected var_decl or
field_decl or function_decl or type_decl or template_decl, have using_decl in
build_deduction_guide, at cp/pt.c:27167
   22 |   atomic_ref r(i);
      |                 ^
0x77ec68 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        /home/jwakely/src/gcc/gcc/gcc/tree.c:9897
0x98461c tree_check5(tree_node*, char const*, int, char const*, tree_code,
tree_code, tree_code, tree_code, tree_code)
        /home/jwakely/src/gcc/gcc/gcc/tree.h:3288
0x98461c build_deduction_guide
        /home/jwakely/src/gcc/gcc/gcc/cp/pt.c:27167
0x9851e0 do_class_deduction
        /home/jwakely/src/gcc/gcc/gcc/cp/pt.c:27399
0x9851e0 do_auto_deduction(tree_node*, tree_node*, tree_node*, int,
auto_deduction_context, tree_node*, int)
        /home/jwakely/src/gcc/gcc/gcc/cp/pt.c:27533
0x8c083f cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
        /home/jwakely/src/gcc/gcc/gcc/cp/decl.c:7018
0x96376b cp_parser_init_declarator
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:20491
0x945c6f cp_parser_simple_declaration
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13525
0x947989 cp_parser_declaration_statement
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:12955
0x9485d3 cp_parser_statement
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11284
0x949500 cp_parser_statement_seq_opt
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11646
0x9495d7 cp_parser_compound_statement
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11600
0x962500 cp_parser_function_body
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:22624
0x962500 cp_parser_ctor_initializer_opt_and_function_body
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:22675
0x962d86 cp_parser_function_definition_after_declarator
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:27776
0x963b1e cp_parser_function_definition_from_specifiers_and_declarator
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:27692
0x963b1e cp_parser_init_declarator
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:20261
0x945c6f cp_parser_simple_declaration
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13525
0x96a402 cp_parser_declaration
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13222
0x96abaf cp_parser_translation_unit
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:4690
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