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.