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

            Bug ID: 85065
           Summary: [concepts] ICE with invalid use of a concept
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: error-recovery, ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reichelt at gcc dot gnu.org
            Blocks: 67491
  Target Milestone: ---

The following invalid code snippet (compiled with "-fconcepts")
triggers an ICE since GCC 6.2.0:

========================================
template<int> concept bool C = true;

C c = 0;
========================================

bug.cc:3:1: error: invalid reference to concept 'C<auto>'
 C c = 0;
 ^
bug.cc:3:7: internal compiler error: in placeholder_extract_concept_and_args,
at cp/constraint.cc:1467
 C c = 0;
       ^
0x5e9488 placeholder_extract_concept_and_args(tree_node*, tree_node*&,
tree_node*&)
        ../../gcc/gcc/cp/constraint.cc:1467
0x8651f1 hash_placeholder_constraint(tree_node*)
        ../../gcc/gcc/cp/constraint.cc:1522
0x95625f auto_hash::hash(tree_node*)
        ../../gcc/gcc/cp/pt.c:25615
0x95625f hash_table<auto_hash, xcallocator>::find_slot(tree_node* const&,
insert_option)
        ../../gcc/gcc/hash-table.h:414
0x95625f extract_autos_r
        ../../gcc/gcc/cp/pt.c:25649
0x956a41 for_each_template_parm_r
        ../../gcc/gcc/cp/pt.c:9579
0x11645eb walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/gcc/tree.c:11387
0x9567b1 for_each_template_parm
        ../../gcc/gcc/cp/pt.c:9677
0x967982 extract_autos
        ../../gcc/gcc/cp/pt.c:25677
0x967982 do_auto_deduction(tree_node*, tree_node*, tree_node*, int,
auto_deduction_context, tree_node*, int)
        ../../gcc/gcc/cp/pt.c:26316
0x89ef73 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
        ../../gcc/gcc/cp/decl.c:6911
0x93c2eb cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.c:19741
0x943758 cp_parser_simple_declaration
        ../../gcc/gcc/cp/parser.c:13059
0x944568 cp_parser_block_declaration
        ../../gcc/gcc/cp/parser.c:12884
0x9484c2 cp_parser_declaration
        ../../gcc/gcc/cp/parser.c:12782
0x9488d1 cp_parser_declaration_seq_opt
        ../../gcc/gcc/cp/parser.c:12658
0x948bc4 cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.c:4563
0x948bc4 c_parse_file()
        ../../gcc/gcc/cp/parser.c:39024
0xa480d6 c_common_parse_file()
        ../../gcc/gcc/c-family/c-opts.c:1132
Please submit a full bug report, [etc.]


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
[Bug 67491] [meta-bug] concepts issues

Reply via email to