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

            Bug ID: 110079
           Summary: ICE with -freorder-blocks-and-partition
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yancheng.li at foxmail dot com
  Target Milestone: ---

When compiling the testacse attached with -S -O2 -freorder-blocks-and-partition
flags, I get the following error: 

// target:aarch64-linux-gnu
// configure:../gcc/configure --prefix=/home/lyc/2022/gcc-trunk/install
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id
--with-linker-hash-style=gnu --enable-languages=c --enable-plugin
--enable-initfini-array --disable-libgcj --without-isl --without-cloog
--enable-gnu-indirect-function --build=aarch64-linux-gnu
--with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags='
-Wl,-z,relro,-z,now' --disable-bootstrap --with-multilib-list=lp64
// thread model:posix
// gcc version 14.0.0 20230531 (experimental) (GCC)
//
// during RTL pass: outof_cfglayout
// test.c: in function‘d’:
// test.c:12:1: internal compiler error:in fixup_reorder_chain,at
cfgrtl.cc:4029
//    12 | }
//       | ^
// 0x824a97 fixup_reorder_chain
//      ../../gcc/gcc/cfgrtl.cc:4029
// 0x824a97 cfg_layout_finalize()
//      ../../gcc/gcc/cfgrtl.cc:4571
// 0x824d5f execute
//      ../../gcc/gcc/cfgrtl.cc:3753
// Please submit a full bug report, with preprocessed source.
// Please include the complete backtrace with any bug report.

// /home/lyc/2022/gcc-trunk/install/libexec/gcc/aarch64-linux-gnu/14.0.0/cc1
-quiet test.c -quiet -dumpbase test.c -dumpbase-ext .c -mlittle-endian
-mabi=lp64 -O2 -freorder-blocks-and-partition -freport-bug -o - -frandom-seed=0
-fdump-noaddr

# 0 "test.c"
# 0 "<built-in>"
# 0 "<命令行>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<命令行>" 2
# 1 "test.c"
int a;
__attribute__((__cold__)) int b(char *);
void d(void) {
e:
  for (; a;)
    ;
  b("");
  asm goto("" : : : : c);
  asm("");
c:
  goto e;
}

Reply via email to