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

            Bug ID: 89532
           Summary: internal compiler error: in
                    type_has_nontrivial_copy_init, at cp/tree.c:4024
           Product: gcc
           Version: 9.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: ---

Created attachment 45849
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45849&action=edit
testcase

Compiling the attached .ii file with -std=gnu++2a causes an ICE. The code has a
circular include, so the std::tuple type is not defined before it's used, so
the code is invalid. I haven't tried to reduce it.

I'm using:
gcc version 9.0.1 20190227 (experimental)


In file included from flat_map:44,
                 from flat_map.cc:1:
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h: In function
'constexpr auto std::__uses_alloc_piecewise_args(const _Alloc&, _Tuple1&&,
_Tuple2&&)':
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h:285:19: error:
'make_tuple' is not a member of 'std'
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h:241:1: note:
'std::make_tuple' is defined in header '<tuple>'; did you forget to '#include
<tuple>'?
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h:286:9: error:
'apply' is not a member of 'std'
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h:290:9: error:
'apply' is not a member of 'std'
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h: At global scope:
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h:313:65: error:
invalid use of incomplete type 'class std::tuple<>'
In file included from /home/jwakely/gcc/9/include/c++/9.0.1/bits/move.h:55,
                 from /home/jwakely/gcc/9/include/c++/9.0.1/bits/stl_pair.h:59,
                 from /home/jwakely/gcc/9/include/c++/9.0.1/utility:70,
                 from /home/jwakely/gcc/9/include/c++/9.0.1/algorithm:60,
                 from flat_map:36,
                 from flat_map.cc:1:
/home/jwakely/gcc/9/include/c++/9.0.1/type_traits:2511:11: note: declaration of
'class std::tuple<>'
 2511 |     class tuple;
      |           ^~~~~
In file included from flat_map:44,
                 from flat_map.cc:1:
/home/jwakely/gcc/9/include/c++/9.0.1/bits/uses_allocator.h:313:65: internal
compiler error: in type_has_nontrivial_copy_init, at cp/tree.c:4024
0x6559ce type_has_nontrivial_copy_init(tree_node const*)
        /home/jwakely/src/gcc/gcc/gcc/cp/tree.c:4024
0x9f169b build_target_expr_with_type(tree_node*, tree_node*, int)
        /home/jwakely/src/gcc/gcc/gcc/cp/tree.c:800
0x9c52e3 finish_compound_literal(tree_node*, tree_node*, int, fcl_t)
        /home/jwakely/src/gcc/gcc/gcc/cp/semantics.c:2866
0x931c6b cp_parser_functional_cast
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:28237
0x943297 cp_parser_postfix_expression
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:7098
0x950cb6 cp_parser_unary_expression
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:8469
0x92c71f cp_parser_cast_expression
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:9355
0x92cf2a cp_parser_binary_expression
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:9457
0x92de69 cp_parser_assignment_expression
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:9754
0x9312d0 cp_parser_parenthesized_expression_list
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:7902
0x942e51 cp_parser_postfix_expression
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:7248
0x944254 cp_parser_decltype_expr
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:14530
0x944254 cp_parser_decltype
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:14626
0x941cc7 cp_parser_simple_type_specifier
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:17666
0x9389b5 cp_parser_type_specifier
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:17448
0x94cf78 cp_parser_type_specifier_seq
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:21903
0x94a0a4 cp_parser_type_id_1
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:21732
0x949e1f cp_parser_trailing_type_id
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:21838
0x949e1f cp_parser_late_return_type_opt
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:21642
0x949e1f cp_parser_direct_declarator
        /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:20777
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.

Reply via email to