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

--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
Reduced to:

$ cat rtmutex_api.i
struct task_struct *get_current();
struct task_struct {
  int __state;
} __attribute____rt_mutex_slowlock_locked() {
  asm goto("" : : : : __label_warn_on);
  __builtin_unreachable();
__label_warn_on:
  while (1)
    get_current()->__state = 0;
}

$ ppc64-linux-gnu-gcc rtmutex_api.i -c -O2
during RTL pass: combine
rtmutex_api.i: In function ‘__attribute____rt_mutex_slowlock_locked’:
rtmutex_api.i:10:1: internal compiler error: in purge_dead_edges, at
cfgrtl.cc:3347
   10 | }
      | ^
0x5e35b6 purge_dead_edges(basic_block_def*)
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64/build/gcc/cfgrtl.cc:3347
0x773947 purge_all_dead_edges()
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64/build/gcc/cfgrtl.cc:3368
0x13dc33f combine_instructions
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64/build/gcc/combine.cc:1434
0x13dc33f rest_of_handle_combine
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64/build/gcc/combine.cc:14978
0x13dc33f execute
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64/build/gcc/combine.cc:15023
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.

Reply via email to