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.]