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

            Bug ID: 84333
           Summary: [6/7/8 Regression] ICE with ternary operator in
                    template function
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reichelt at gcc dot gnu.org
  Target Milestone: ---

The following valid code snippet triggers an ICE since GCC 6.1.0:

=========================================
template<typename> int foo()
{
  return sizeof(int) > 1 ? : 1;
}
=========================================

bug.cc: In function 'int foo()':
bug.cc:3:30: internal compiler error: tree check: did not expect class 'type',
have 'type' (integer_type) in contains_placeholder_p, at tree.c:3743
   return sizeof(int) > 1 ? : 1;
                              ^
0x78a86d tree_not_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        ../../gcc/gcc/tree.c:9434
0x78dd72 non_type_check(tree_node*, char const*, int, char const*)
        ../../gcc/gcc/tree.h:3311
0x78dd72 contains_placeholder_p(tree_node const*)
        ../../gcc/gcc/tree.c:3743
0x11412a5 contains_placeholder_p(tree_node const*)
        ../../gcc/gcc/tree.c:3745
0x1141042 contains_placeholder_p(tree_node const*)
        ../../gcc/gcc/tree.c:3746
0x1141723 save_expr(tree_node*)
        ../../gcc/gcc/tree.c:3571
0x82af04 build_conditional_expr_1
        ../../gcc/gcc/cp/call.c:4808
0x82c44a build_conditional_expr(unsigned int, tree_node*, tree_node*,
tree_node*, int)
        ../../gcc/gcc/cp/call.c:5390
0x9d0095 build_x_conditional_expr(unsigned int, tree_node*, tree_node*,
tree_node*, int)
        ../../gcc/gcc/cp/typeck.c:6563
0x913cc3 cp_parser_question_colon_clause
        ../../gcc/gcc/cp/parser.c:9441
0x913064 cp_parser_assignment_expression
        ../../gcc/gcc/cp/parser.c:9480
0x913708 cp_parser_expression
        ../../gcc/gcc/cp/parser.c:9643
0x91be8b cp_parser_jump_statement
        ../../gcc/gcc/cp/parser.c:12396
0x91be8b cp_parser_statement
        ../../gcc/gcc/cp/parser.c:10810
0x91cc30 cp_parser_statement_seq_opt
        ../../gcc/gcc/cp/parser.c:11255
0x91cd07 cp_parser_compound_statement
        ../../gcc/gcc/cp/parser.c:11209
0x933460 cp_parser_function_body
        ../../gcc/gcc/cp/parser.c:21747
0x933460 cp_parser_ctor_initializer_opt_and_function_body
        ../../gcc/gcc/cp/parser.c:21784
0x933d10 cp_parser_function_definition_after_declarator
        ../../gcc/gcc/cp/parser.c:26685
0x934a27 cp_parser_function_definition_from_specifiers_and_declarator
        ../../gcc/gcc/cp/parser.c:26601
Please submit a full bug report, [etc.]

Reply via email to