https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100782
Bug ID: 100782
Summary: [11 Regression] sh4 ICEs on -O2 -fPIE
-fstack-protector: internal compiler error: in
curr_insn_transform, at lra-constraints.c:4132
Product: gcc
Version: 11.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: slyfox at gcc dot gnu.org
Target Milestone: ---
Host: x86_64-pc-linux-gnu
Target: sh4-unknown-linux-gnu
Build: x86_64-pc-linux-gnu
Not sure if it's a dupe of bug #100241. Filing just in case.
Observed when built libffi for sh4 target. Minimal example:
// cat raw_api.c.c
void ffi_raw_to_ptrarray(void);
int ffi_call(void (*)(void *, void *), void*, void*, void*);
void ffi_raw_call_cif(void *fn, void *rvalue) {
void *avalue = __builtin_alloca(sizeof 0);
ffi_raw_to_ptrarray();
ffi_call(ffi_raw_call_cif, fn, rvalue, avalue);
}
$ ./xgcc -B. -O2 -mlra -fexceptions -fPIE -fstack-protector -c raw_api.c.c -o
raw_api.o
raw_api.c.c: In function 'ffi_raw_call_cif':
raw_api.c.c:8:1: error: unable to generate reloads for:
8 | }
| ^
(call_insn 18 16 20 2 (parallel [
(call (mem:SI (symbol_ref:SI ("ffi_raw_to_ptrarray") [flags 0x41]
<function_decl 0x7fc7ae93bb00 ffi_raw_to_ptrarray>) [0 ffi_raw_to_ptrarray S4
A32])
(const_int 0 [0]))
(use (reg:SI 154 fpscr0))
(use (reg:SI 12 r12))
(clobber (reg:SI 146 pr))
(clobber (reg:SI 183))
]) "raw_api.c.c":6:3 228 {call_pcrel}
(expr_list:REG_CALL_DECL (symbol_ref:SI ("ffi_raw_to_ptrarray") [flags
0x41] <function_decl 0x7fc7ae93bb00 ffi_raw_to_ptrarray>)
(nil))
(nil))
during RTL pass: reload
raw_api.c.c:8:1: internal compiler error: in curr_insn_transform, at
lra-constraints.c:4132
0x7fc7aea9287c __libc_start_main
../csu/libc-start.c:332
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Using built-in specs.
COLLECT_GCC=./xgcc
Target: sh4-unknown-linux-gnu
Configured with: ../gcc/configure --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=sh4-unknown-linux-gnu
--prefix=/home/slyfox/dev/git/gcc-sh4-ice/../gcc-sh4-installed
--with-sysroot=/usr/sh4-unknown-linux-gnu --disable-bootstrap
--enable-languages=c --disable-nls CFLAGS=-O0 CXXFLAGS=-O0
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.0 20210526 (experimental) (GCC)