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)

Reply via email to