https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107732
Bug ID: 107732 Summary: ICE in lower_bound, at value-range.h:350 Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gcc-bugzilla at al42and dot me Target Milestone: --- Created attachment 53916 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53916&action=edit Preprocessed source (-freport-bug) The following code (reduced example) triggers an ICE with a recent `master` (96e4244ef3ccf4867ca4e37fbc6800e64ef30af6). $ cat test.ii extern "C" double sqrt(double); double a, b, c; void d() { for (;;) { c = __builtin_fabs(a); sqrt(c); if (a) a = b; } } $ /home/aland/gcc-trunk/bin/g++ -O2 -c test.ii during GIMPLE pass: thread test.ii: In function ‘void d()’: test.ii:3:6: internal compiler error: in lower_bound, at value-range.h:350 3 | void d() { | ^ 0x9a92fc frange::lower_bound() const ../.././gcc/value-range.h:350 0x9a947d frange::lower_bound() const ../.././gcc/value-range.h:1127 0x9a947d foperator_abs::op1_range(frange&, tree_node*, frange const&, frange const&, relation_trio) const ../.././gcc/range-op-float.cc:1413 0x211bc78 foperator_abs::op1_range(frange&, tree_node*, frange const&, frange const&, relation_trio) const ../.././gcc/range-op-float.cc:1390 0x2002c25 gori_compute::compute_operand1_range(vrange&, gimple_range_op_handler&, vrange const&, tree_node*, fur_source&, value_relation*) ../.././gcc/gimple-range-gori.cc:1095 0x2001913 gori_compute::compute_operand_range(vrange&, gimple*, vrange const&, tree_node*, fur_source&, value_relation*) ../.././gcc/gimple-range-gori.cc:692 0x2002c9f gori_compute::compute_operand1_range(vrange&, gimple_range_op_handler&, vrange const&, tree_node*, fur_source&, value_relation*) ../.././gcc/gimple-range-gori.cc:1150 0x2001913 gori_compute::compute_operand_range(vrange&, gimple*, vrange const&, tree_node*, fur_source&, value_relation*) ../.././gcc/gimple-range-gori.cc:692 0x2005742 gori_compute::outgoing_edge_range_p(vrange&, edge_def*, tree_node*, range_query&) ../.././gcc/gimple-range-gori.cc:1373 0x13d21fd path_range_query::compute_ranges_in_block(basic_block_def*) ../.././gcc/gimple-range-path.cc:454 0x13d28a2 path_range_query::compute_ranges(bitmap_head const*) ../.././gcc/gimple-range-path.cc:622 0x14569e9 back_threader::find_taken_edge_cond(vec<basic_block_def*, va_heap, vl_ptr> const&, gcond*) ../.././gcc/tree-ssa-threadbackward.cc:324 0x1456b9e back_threader::maybe_register_path(back_threader_profitability&) ../.././gcc/tree-ssa-threadbackward.cc:248 0x1456ec8 back_threader::find_paths_to_names(basic_block_def*, bitmap_head*, unsigned int, back_threader_profitability&) ../.././gcc/tree-ssa-threadbackward.cc:371 0x145737c back_threader::find_paths_to_names(basic_block_def*, bitmap_head*, unsigned int, back_threader_profitability&) ../.././gcc/tree-ssa-threadbackward.cc:479 0x145737c back_threader::find_paths_to_names(basic_block_def*, bitmap_head*, unsigned int, back_threader_profitability&) ../.././gcc/tree-ssa-threadbackward.cc:479 0x1457dbf back_threader::maybe_thread_block(basic_block_def*) ../.././gcc/tree-ssa-threadbackward.cc:551 0x1457e71 back_threader::thread_blocks() ../.././gcc/tree-ssa-threadbackward.cc:979 0x1457ed0 execute ../.././gcc/tree-ssa-threadbackward.cc:1081 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.