https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122453
Bug ID: 122453
Summary: internal compiler error: in output_pic_addr_const
Product: gcc
Version: 13.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: fuyeq1iq at gmail dot com
Target Milestone: ---
```
/tmp$ gcc -O1 -fPIC -shared test.c -o test.so
/usr/bin/ld: /tmp/cc3d6fSp.o: relocation R_X86_64_32 against `.rodata' can not
be used when making a shared object; recompile with -fPIC
collect2: error: ld returned 1 exit status
/tmp$ gcc -O1 -m32 -fPIC -shared test.c -o test.so
during RTL pass: final
test.c: In function ‘a’:
test.c:4:1: internal compiler error: in output_pic_addr_const, at
config/i386/i386.cc:12331
4 | }
| ^
0x680208 output_pic_addr_const
../../src/gcc/config/i386/i386.cc:12331
0x8f650c output_operand(rtx_def*, int)
../../src/gcc/final.cc:3632
0x8f70f1 output_asm_insn(char const*, rtx_def**)
../../src/gcc/final.cc:3525
0x8f8a8a final_scan_insn_1
../../src/gcc/final.cc:2637
0x8f8bbf final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
../../src/gcc/final.cc:2887
0x8f8e64 final_1
../../src/gcc/final.cc:1979
0x8f967a rest_of_handle_final
../../src/gcc/final.cc:4240
0x8f967a execute
../../src/gcc/final.cc:4318
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-13/README.Bugs> for instructions.
```
```
Preprocessed source stored into /tmp/cc19SdFp.out file, please attach this to
your bugreport.
/tmp$ cat /tmp/cc19SdFp.out
// Target: x86_64-linux-gnu
// Configured with: ../src/configure -v --with-pkgversion='Ubuntu
13.1.0-8ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,rust --prefix=/usr
--with-gcc-major-version-only --program-suffix=-13
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new
--enable-gnu-unique-object --disable-vtable-verify --enable-plugin
--enable-default-pie --with-system-zlib --enable-libphobos-checking=release
--with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch
--disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
// Thread model: posix
// Supported LTO compression algorithms: zlib zstd
// gcc version 13.1.0 (Ubuntu 13.1.0-8ubuntu1~20.04.2)
//
// during RTL pass: final
// test.c: In function ‘a’:
// test.c:4:1: internal compiler error: in output_pic_addr_const, at
config/i386/i386.cc:12331
// 4 | }
// | ^
// 0x680208 output_pic_addr_const
// ../../src/gcc/config/i386/i386.cc:12331
// 0x8f650c output_operand(rtx_def*, int)
// ../../src/gcc/final.cc:3632
// 0x8f70f1 output_asm_insn(char const*, rtx_def**)
// ../../src/gcc/final.cc:3525
// 0x8f8a8a final_scan_insn_1
// ../../src/gcc/final.cc:2637
// 0x8f8bbf final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
// ../../src/gcc/final.cc:2887
// 0x8f8e64 final_1
// ../../src/gcc/final.cc:1979
// 0x8f967a rest_of_handle_final
// ../../src/gcc/final.cc:4240
// 0x8f967a execute
// ../../src/gcc/final.cc:4318
// Please submit a full bug report, with preprocessed source.
// Please include the complete backtrace with any bug report.
// See <file:///usr/share/doc/gcc-13/README.Bugs> for instructions.
// /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -imultilib 32 -imultiarch
i386-linux-gnu test.c -quiet -dumpdir test.so- -dumpbase test.c -dumpbase-ext
.c -m32 -mtune=generic -march=i686 -O1 -fPIC -freport-bug
-fasynchronous-unwind-tables -fstack-protector-strong -Wformat
-Wformat-security -fstack-clash-protection -o - -frandom-seed=0 -fdump-noaddr
# 0 "test.c"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "test.c"
void a(void)
{
__asm__ volatile(".long %p0" : : "p"(__func__) : );
}
```