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

Reply via email to