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

            Bug ID: 108647
           Summary: [13 Regression] ICE in upper_bound, at
                    value-range.h:950 with -O3
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vsevolod.livinskiy at gmail dot com
  Target Milestone: ---

Link to the Compiler Explorer: https://godbolt.org/z/PMGTPGPab

Reproducer:
bool a;
int b, c;
inline const bool &d(bool &e, const bool &f) { return f < e ? f : e; }
void g(char e, bool f[], bool h[], bool p4[]) {
  for (;;)
    if (p4)
      for (char j = 0; j < 6; j += (f[0] & c ? p4[0] : int(0 >= e))
                                       ? 0
                                       : d(p4[0], p4[0] > h[0]) + 1) {
        a = 0;
        b = 0;
      }
}

Error:
>$ g++ -O3 -c func.cpp
during GIMPLE pass: thread
func.cpp: In function 'void g(char, bool*, bool*, bool*)':
func.cpp:4:6: internal compiler error: in upper_bound, at value-range.h:950
    4 | void g(char e, bool f[], bool h[], bool p4[]) {
      |      ^
0x995922 irange::upper_bound() const
        /testing/gcc/gcc_src_master/gcc/value-range.h:950
0x9961f0 irange::upper_bound() const
        /testing/gcc/gcc_src_master/gcc/tree.h:3653
0x9961f0 operator_lt::op2_range(irange&, tree_node*, irange const&, irange
const&, relation_trio) const
        /testing/gcc/gcc_src_master/gcc/range-op.cc:952
0x20cc69f gori_compute::refine_using_relation(tree_node*, vrange&, tree_node*,
vrange&, fur_source&, relation_kind_t)
        /testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:1034
0x20ce404 gori_compute::compute_operand1_range(vrange&,
gimple_range_op_handler&, vrange const&, tree_node*, fur_source&,
value_relation*)
        /testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:1092
0x20cd0e5 gori_compute::compute_operand_range(vrange&, gimple*, vrange const&,
tree_node*, fur_source&, value_relation*)
        /testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:700
0x20d0ad8 gori_compute::outgoing_edge_range_p(vrange&, edge_def*, tree_node*,
range_query&)
        /testing/gcc/gcc_src_master/gcc/gimple-range-gori.cc:1358
0x141362d path_range_query::compute_ranges_in_block(basic_block_def*)
        /testing/gcc/gcc_src_master/gcc/gimple-range-path.cc:454
0x1413d3a path_range_query::compute_ranges(bitmap_head const*)
        /testing/gcc/gcc_src_master/gcc/gimple-range-path.cc:622
0x149cd3a back_threader::find_taken_edge_cond(vec<basic_block_def*, va_heap,
vl_ptr> const&, gcond*)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:324
0x149cf33 back_threader::maybe_register_path(back_threader_profitability&)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:248
0x149d2d0 back_threader::find_paths_to_names(basic_block_def*, bitmap_head*,
unsigned int, back_threader_profitability&)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:371
0x149d789 back_threader::find_paths_to_names(basic_block_def*, bitmap_head*,
unsigned int, back_threader_profitability&)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:479
0x149d789 back_threader::find_paths_to_names(basic_block_def*, bitmap_head*,
unsigned int, back_threader_profitability&)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:479
0x149d789 back_threader::find_paths_to_names(basic_block_def*, bitmap_head*,
unsigned int, back_threader_profitability&)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:479
0x149d789 back_threader::find_paths_to_names(basic_block_def*, bitmap_head*,
unsigned int, back_threader_profitability&)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:479
0x149e258 back_threader::maybe_thread_block(basic_block_def*)
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:551
0x149e321 back_threader::thread_blocks()
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:975
0x149e398 execute
        /testing/gcc/gcc_src_master/gcc/tree-ssa-threadbackward.cc:1077

gcc version 13.0.1 20230201 (a2c848c92c3f13c2dd9bd92d22beb44c1ff848b4)

Reply via email to