https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117880
Bug ID: 117880 Summary: [14/15 Regression] ICE with -Wduplicated-branches Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org Target Milestone: --- This test: ``` template <class> class Impl; template <class ReturnType, class P> struct Impl<ReturnType(P)> { void InvokedAfterMove() { false ? void() : void(); } }; ``` results in an ICE: $ ./cc1plus -quiet bz.C -Wduplicated-branches bz.C: In member function ‘void Impl<ReturnType(P)>::InvokedAfterMove()’: bz.C:3:51: internal compiler error: Segmentation fault 3 | void InvokedAfterMove() { false ? void() : void(); } | ^ 0x3065397 internal_error(char const*, ...) /home/mpolacek/src/gcc/gcc/diagnostic-global-context.cc:517 0x11939e4 crash_signal /home/mpolacek/src/gcc/gcc/toplev.cc:322 0x43ef94 location_wrapper_p(tree_node const*) /home/mpolacek/src/gcc/gcc/tree.h:4432 0x43f011 tree_strip_any_location_wrapper(tree_node*) /home/mpolacek/src/gcc/gcc/tree.h:4444 0xc0b452 operand_compare::operand_equal_p(tree_node const*, tree_node const*, unsigned int) /home/mpolacek/src/gcc/gcc/fold-const.cc:3176 0xc0ceef operand_compare::operand_equal_p(tree_node const*, tree_node const*, unsigned int) /home/mpolacek/src/gcc/gcc/fold-const.cc:3473 0xc11f3c operand_compare::verify_hash_value(tree_node const*, tree_node const*, unsigned int, bool*) /home/mpolacek/src/gcc/gcc/fold-const.cc:4233 0xc0b433 operand_compare::operand_equal_p(tree_node const*, tree_node const*, unsigned int) /home/mpolacek/src/gcc/gcc/fold-const.cc:3173 0xc12057 operand_equal_p(tree_node const*, tree_node const*, unsigned int) /home/mpolacek/src/gcc/gcc/fold-const.cc:4264 0x41d192 build_conditional_expr(op_location_t const&, tree_node*, tree_node*, tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/call.cc:6410 0x88c25f build_x_conditional_expr(unsigned int, tree_node*, tree_node*, tree_node*, int) /home/mpolacek/src/gcc/gcc/cp/typeck.cc:8047 0x6c1214 cp_parser_question_colon_clause /home/mpolacek/src/gcc/gcc/cp/parser.cc:10866 0x6c141e cp_parser_assignment_expression /home/mpolacek/src/gcc/gcc/cp/parser.cc:10932 0x6c178c cp_parser_expression /home/mpolacek/src/gcc/gcc/cp/parser.cc:11093 0x6c7b6e cp_parser_expression_statement /home/mpolacek/src/gcc/gcc/cp/parser.cc:13363 0x6c7316 cp_parser_statement /home/mpolacek/src/gcc/gcc/cp/parser.cc:13140 0x6c84ab cp_parser_statement_seq_opt /home/mpolacek/src/gcc/gcc/cp/parser.cc:13626 0x6c8025 cp_parser_compound_statement /home/mpolacek/src/gcc/gcc/cp/parser.cc:13473 0x6e2e2d cp_parser_function_body /home/mpolacek/src/gcc/gcc/cp/parser.cc:26389 0x6e3173 cp_parser_ctor_initializer_opt_and_function_body /home/mpolacek/src/gcc/gcc/cp/parser.cc:26440