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

            Bug ID: 102561
           Summary: [12 Regression] ICE Segmentation fault during GIMPLE
                    pass: evrp (on -O2 and above)
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: haoxintu at gmail dot com
  Target Milestone: ---

Hi all.

It appears to be a quite recent regression issue.


$cat small.c
int a, b, c;
d() { (a = 2) ^ c << a || (c ^= b); }


$gcc -w -O2 small.c
during GIMPLE pass: evrp
small.c: In function ā€˜d’:
small.c:2:1: internal compiler error: Segmentation fault
    2 | d() { (a = 2) ^ c << a || (c ^= b); }
      | ^
0xc162af crash_signal
        ../../gcc/toplev.c:331
0x9d6a9f irange::tree_upper_bound(unsigned int) const
        ../../gcc/value-range.h:240
0x9d6a9f irange::upper_bound(unsigned int) const
        ../../gcc/value-range.h:522
0x9d6a9f irange::upper_bound(unsigned int) const
        ../../gcc/value-range.h:516
0x9d6a9f irange::upper_bound() const
        ../../gcc/value-range.h:532
0x180c493 operator_lshift::op1_range(irange&, tree_node*, irange const&, irange
const&, tree_code) const
        ../../gcc/range-op.cc:2131
0x171da1b gori_compute::compute_operand1_range(irange&, gimple*, irange const&,
tree_node*, fur_source&)
        ../../gcc/gimple-range-gori.cc:1011
0x171da95 gori_compute::compute_operand_range(irange&, gimple*, irange const&,
tree_node*, fur_source&)
        ../../gcc/gimple-range-gori.cc:689
0x171da95 gori_compute::compute_operand1_range(irange&, gimple*, irange const&,
tree_node*, fur_source&)
        ../../gcc/gimple-range-gori.cc:1064
0x171e932 gori_compute::compute_operand_range(irange&, gimple*, irange const&,
tree_node*, fur_source&)
        ../../gcc/gimple-range-gori.cc:689
0x171e932 gori_compute::outgoing_edge_range_p(irange&, edge_def*, tree_node*,
range_query&)
        ../../gcc/gimple-range-gori.cc:1245
0x17133a3 ranger_cache::range_on_edge(irange&, edge_def*, tree_node*)
        ../../gcc/gimple-range-cache.cc:979
0x1713a78 ranger_cache::range_on_edge(irange&, edge_def*, tree_node*)
        ../../gcc/gimple-range-fold.h:97
0x1713a78 ranger_cache::propagate_cache(tree_node*)
        ../../gcc/gimple-range-cache.cc:1078
0x1714241 ranger_cache::fill_block_cache(tree_node*, basic_block_def*,
basic_block_def*)
        ../../gcc/gimple-range-cache.cc:1290
0x1714405 ranger_cache::block_range(irange&, basic_block_def*, tree_node*,
bool)
        ../../gcc/gimple-range-cache.cc:1022
0x17107a4 gimple_ranger::range_on_entry(irange&, basic_block_def*, tree_node*)
        ../../gcc/gimple-range.cc:131
0x1710df7 gimple_ranger::range_of_expr(irange&, tree_node*, gimple*)
        ../../gcc/gimple-range.cc:105
0x1718ba4 fold_using_range::range_of_range_op(irange&, gimple*, fur_source&)
        ../../gcc/gimple-range-fold.cc:604
0x171ad96 fold_using_range::fold_stmt(irange&, gimple*, fur_source&,
tree_node*)
        ../../gcc/gimple-range-fold.cc:556
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 -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/haoxin/haoxin-data/compilers/gcc/build/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure
--prefix=/home/haoxin/haoxin-data/compilers/gcc/build/ --enable-bootstrap
--enable-checking=release --enable-languages=c,c++ --enable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211002 (experimental) (GCC)

Thanks,
Haoxin

Reply via email to