https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98051
Bug ID: 98051 Summary: ICE in logical_combine, at gimple-range-gori.cc:754 in O2-Os Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: haoxintu at gmail dot com Target Milestone: --- Hi all. The small.cc makes GCC-trunk crash under O2~Os, while O0-O1 is fine. $cat small.c #include <stdint.h> void a(int b) { uint8_t c; int32_t d; for (;;) if (c >= ((b == (d == d)) > !b)) { int32_t e[] = {}; } } $gcc-trunk -O2 -c small.c during GIMPLE pass: evrp small.c: In function ‘a’: small.c:9:1: internal compiler error: in logical_combine, at gimple-range-gori.cc:754 9 | } | ^ 0x6667df gori_compute::logical_combine(irange&, tree_code, irange const&, tf_range const&, tf_range const&) ../../gcc/gimple-range-gori.cc:754 0x14d37cc gori_compute_cache::cache_stmt(gimple*) ../../gcc/gimple-range-gori.cc:1314 0x14d3bd1 gori_compute_cache::compute_operand_range(irange&, gimple*, irange const&, tree_node*) ../../gcc/gimple-range-gori.cc:1279 0x14d15a1 gori_compute::compute_operand1_range(irange&, gimple*, irange const&, tree_node*) ../../gcc/gimple-range-gori.cc:903 0x14d3b7c gori_compute::compute_operand_range(irange&, gimple*, irange const&, tree_node*) ../../gcc/gimple-range-gori.cc:575 0x14d3b7c gori_compute_cache::compute_operand_range(irange&, gimple*, irange const&, tree_node*) ../../gcc/gimple-range-gori.cc:1276 0x14d16ba gori_compute::compute_operand2_range(irange&, gimple*, irange const&, tree_node*) ../../gcc/gimple-range-gori.cc:936 0x14d3b7c gori_compute::compute_operand_range(irange&, gimple*, irange const&, tree_node*) ../../gcc/gimple-range-gori.cc:575 0x14d3b7c gori_compute_cache::compute_operand_range(irange&, gimple*, irange const&, tree_node*) ../../gcc/gimple-range-gori.cc:1276 0x14d25a7 gori_compute::outgoing_edge_range_p(irange&, edge_def*, tree_node*) ../../gcc/gimple-range-gori.cc:1001 0x14cf26c ranger_cache::iterative_cache_update(tree_node*) ../../gcc/gimple-range-cache.cc:636 0x14cfc0c ranger_cache::fill_block_cache(tree_node*, basic_block_def*, basic_block_def*) ../../gcc/gimple-range-cache.cc:808 0x14d01bf ranger_cache::block_range(irange&, basic_block_def*, tree_node*, bool) ../../gcc/gimple-range-cache.cc:589 0x14c935a gimple_ranger::range_on_entry(irange&, basic_block_def*, tree_node*) ../../gcc/gimple-range.cc:875 0x14c98a8 gimple_ranger::range_of_expr(irange&, tree_node*, gimple*) ../../gcc/gimple-range.cc:846 0x14caad9 gimple_ranger::range_of_range_op(irange&, gimple*) ../../gcc/gimple-range.cc:418 0x14cce97 gimple_ranger::calc_stmt(irange&, gimple*, tree_node*) ../../gcc/gimple-range.cc:369 0x14cd355 gimple_ranger::range_of_stmt(irange&, gimple*, tree_node*) ../../gcc/gimple-range.cc:952 0x14c9918 gimple_ranger::range_of_expr(irange&, tree_node*, gimple*) ../../gcc/gimple-range.cc:843 0xdc69c5 range_query::value_of_expr(tree_node*, gimple*) ../../gcc/value-query.cc:85 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. $gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/home/tuhaoxin/compilers/gcc/build/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../configure --prefix=/home/tuhaoxin/compilers/gcc/build/ --enable-bootstrap --enable-checking=release --enable-languages=c,c++ -disable-multilib Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.0.0 20201007 (experimental) (GCC)