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

--- Comment #1 from Haoxin Tu <haoxintu at gmail dot com> ---
Similar case:

#include <stdint.h>
int a;
void b(int c) {
  uint16_t d;
  uint16_t *e;
  int16_t f;
  int64_t g;
  if ((g || (d = 0)) == c << (0 <= (*e ^= c)))
    *e - f && (a = d);
}

Error:
during GIMPLE pass: vrp-thread
small.c: In function ‘b’:
small.c:3:6: internal compiler error: Segmentation fault
    3 | void b(int c) {
      |      ^
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
0x1843587 path_range_query::compute_ranges_in_block(basic_block_def*)
        ../../gcc/gimple-range-path.cc:349
0x184451a path_range_query::compute_ranges(vec<basic_block_def*, va_heap,
vl_ptr> const&, bitmap_head const*)
        ../../gcc/gimple-range-path.cc:516
0xde0a22 hybrid_jt_simplifier::compute_ranges_from_state(gimple*, jt_state*)
        ../../gcc/tree-ssa-threadedge.c:1466
0xde0a70 hybrid_jt_simplifier::simplify(gimple*, gimple*, basic_block_def*,
jt_state*)
        ../../gcc/tree-ssa-threadedge.c:1421
0xddfa13 jump_threader::simplify_control_stmt_condition(edge_def*, gimple*)
        ../../gcc/tree-ssa-threadedge.c:386
0xddffea jump_threader::thread_through_normal_block(vec<jump_thread_edge*,
va_heap, vl_ptr>*, edge_def*, bitmap_head*)
        ../../gcc/tree-ssa-threadedge.c:952
0xde1500 jump_threader::thread_through_normal_block(vec<jump_thread_edge*,
va_heap, vl_ptr>*, edge_def*, bitmap_head*)
        ../../gcc/tree-ssa-threadedge.c:911
0xde1500 jump_threader::thread_across_edge(edge_def*)
        ../../gcc/tree-ssa-threadedge.c:1155
0x16e647a dom_walker::walk(basic_block_def*)
        ../../gcc/domwalk.c:352
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.

Reply via email to