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

--- Comment #1 from Zhendong Su <zhendong.su at inf dot ethz.ch> ---
Another likely related test.

Compiler Explorer: https://godbolt.org/z/o7Wrd7P66

[551] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/15.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk
--enable-sanitizers --enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 15.0.0 20240714 (experimental) (GCC) 
[552] % 
[552] % gcctk -O2 -fno-gcse -fschedule-insns -fno-guess-branch-probability
-fno-tree-fre -fno-tree-ch small.c
during RTL pass: late_combine
small.c: In function ‘main’:
small.c:42:1: internal compiler error: in compare_nodes, at
splay-tree-utils.tcc:958
   42 | }
      | ^
0x24979f5 internal_error(char const*, ...)
        ../../gcc-trunk/gcc/diagnostic-global-context.cc:491
0xa462c6 fancy_abort(char const*, int, char const*)
        ../../gcc-trunk/gcc/diagnostic.cc:1725
0xa30b0f
rootless_splay_tree<default_splay_tree_accessors_with_parent<rtl_ssa::insn_info::order_node*>
>::compare_nodes(rtl_ssa::insn_info::order_node*,
rtl_ssa::insn_info::order_node*)
        ../../gcc-trunk/gcc/splay-tree-utils.tcc:958
0xa30b0f
rootless_splay_tree<default_splay_tree_accessors_with_parent<rtl_ssa::insn_info::order_node*>
>::compare_nodes(rtl_ssa::insn_info::order_node*,
rtl_ssa::insn_info::order_node*)
        ../../gcc-trunk/gcc/splay-tree-utils.tcc:944
0xa30b0f rtl_ssa::insn_info::slow_compare_with(rtl_ssa::insn_info const&) const
        ../../gcc-trunk/gcc/rtl-ssa/insns.cc:88
0x2389403 rtl_ssa::insn_info::compare_with(rtl_ssa::insn_info const*) const
        ../../gcc-trunk/gcc/rtl-ssa/member-fns.inl:550
0x2389403 operator()
        ../../gcc-trunk/gcc/rtl-ssa/accesses.cc:549
0x2389403 lookup<rtl_ssa::lookup_clobber(rtl_ssa::clobber_tree&,
rtl_ssa::insn_info*)::<lambda(rtl_ssa::clobber_info*)> >
        ../../gcc-trunk/gcc/splay-tree-utils.tcc:536
0x238ab8a
rtl_ssa::lookup_clobber(rooted_splay_tree<splay_tree_accessors_with_parent<default_splay_tree_accessors_with_parent<rtl_ssa::clobber_info*>
> >&, rtl_ssa::insn_info*)
        ../../gcc-trunk/gcc/rtl-ssa/accesses.cc:551
0x238ab8a rtl_ssa::function_info::add_clobber(rtl_ssa::clobber_info*,
rtl_ssa::clobber_group*)
        ../../gcc-trunk/gcc/rtl-ssa/accesses.cc:661
0x238e36c rtl_ssa::function_info::add_def(rtl_ssa::def_info*)
        ../../gcc-trunk/gcc/rtl-ssa/accesses.cc:950
0x239227a rtl_ssa::function_info::apply_changes_to_insn(rtl_ssa::insn_change&,
hash_set<rtl_ssa::def_info*, false, default_hash_traits<rtl_ssa::def_info*> >&)
        ../../gcc-trunk/gcc/rtl-ssa/changes.cc:688
0x2394de4
rtl_ssa::function_info::change_insns(array_slice<rtl_ssa::insn_change*>)
        ../../gcc-trunk/gcc/rtl-ssa/changes.cc:888
0x233966a run
        ../../gcc-trunk/gcc/late-combine.cc:452
0x233966a combine_into_uses
        ../../gcc-trunk/gcc/late-combine.cc:683
0x2339db7 execute
        ../../gcc-trunk/gcc/late-combine.cc:711
0x2339db7 execute
        ../../gcc-trunk/gcc/late-combine.cc:760
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
[553] % 
[553] % cat small.c
int printf(const char *, ...);
int a[6], b, c;
char d, l;
struct {
  char e;
  int f;
  int : 8;
  long g;
  long h;
} i[1][9] = {0};
unsigned j;
void n(char p) { b = b >> 8 ^ a[b ^ p]; }
int main() {
  int k, o;
  while (b) {
    k = 0;
    for (; k < 9; k++) {
      b = b ^ a[l];
      n(j);
      if (o)
        printf(&d);
      long m = i[c][k].f;
      b = b >> 8 ^ a[l];
      n(m >> 32);
      n(m);
      if (o)
        printf("%d", d);
      b = b >> 8 ^ l;
      n(2);
      n(0);
      if (o)
        printf(&d);
      b = b ^ a[l];
      n(i[c][k].g >> 2);
      n(i[c][k].g);
      if (o)
        printf(&d);
      printf("%d", i[c][k].f);
    }
  }
  return 0;
}

Reply via email to