https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127027
Bug ID: 127027
Summary: [16 Regression] ICE on jemalloc-5.3.1: during GIMPLE
pass: vrp : Segmentation fault since
r17-3508-gaa96619908895f
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: slyfox at gcc dot gnu.org
Target Milestone: ---
Bisected down to r17-3508-gaa96619908895f.
Initially noticed ICE on jemalloc-5.3.1. Extracted example:
// $ cat pac.c.c
struct extent_hooks_s {
_Bool dalloc;
};
typedef struct {
void *repr;
} atomic_p_t;
atomic_p_t atomic_load_p_a;
enum { extent_state_muzzy } ehooks_are_default() {
_Bool __trans_tmp_3;
struct extent_hooks_s *__trans_tmp_2;
if (ehooks_are_default()) {
void *result;
__atomic_load(&atomic_load_p_a, &result, 0);
__trans_tmp_2 = result;
__trans_tmp_3 = __trans_tmp_2->dalloc;
}
if (__trans_tmp_3)
__builtin_unreachable();
}
Triggering:
$ gcc/xgcc -Bgcc -c pac.c.c -O2
during GIMPLE pass: vrp
pac.c.c: In function 'ehooks_are_default':
pac.c.c:8:29: internal compiler error: Segmentation fault
8 | enum { extent_state_muzzy } ehooks_are_default() {
| ^~~~~~~~~~~~~~~~~~
0x2917e80 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
???:0
0x290a074 internal_error(char const*, ...)
???:0
0x10d0a35 crash_signal(int)
???:0
0xca2c5c infer_range_manager::clear(tree_node*)
???:0
0x151b818 range_query::reset_range_info(tree_node*)
???:0
0xc87c1a ranger_cache::reset_range_info(tree_node*)
???:0
0xc8451a gimple_ranger::reset_range_info(tree_node*)
???:0
0x13e602e reset_flow_sensitive_info(tree_node*)
???:0
0x126301c simple_dce_from_worklist(bitmap_head*, bitmap_head*, bool)
???:0
0x14cc5d6 remove_unreachable::handle_early(gimple*, edge_def*)
???:0
0x14cc7aa remove_unreachable::maybe_register(gimple*)
???:0
0x14d2f30 rvrp_folder::pre_fold_stmt(gimple*)
???:0
0x134251e substitute_and_fold_dom_walker::before_dom_children(basic_block_def*)
???:0
0x246bc66 dom_walker::walk(basic_block_def*)
???:0
0x1341034 substitute_and_fold_engine::substitute_and_fold(basic_block_def*)
???:0
0x14cff03 execute_ranger_vrp(function*, bool)
???:0
0x14d22c3 (anonymous namespace)::pass_vrp::execute(function*)
???:0
$ gcc/xgcc -Bgcc -v
Reading specs from gcc/specs
COLLECT_GCC=gcc/xgcc
COLLECT_LTO_WRAPPER=gcc/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/slyfox/dev/git/gcc/configure --disable-multilib
--disable-bootstrap --disable-lto --disable-libsanitizer --enable-languages=c
CFLAGS='-O1 -g0' CXXFLAGS='-O1 -g0' LDFLAGS='-O1 -g0'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 17.0.0 20260821 (experimental) (GCC)