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

            Bug ID: 123650
           Summary: [16 Regression] crash during startup when built with
                    -fno-inline-atomics -flto -static
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: libgcc
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

Created attachment 63370
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=63370&action=edit
reduced testcase

This started failing between r16-6686 (OK) and r16-6819 (BAD).
I am not entirely sure this is a gcc issue, but I don't see anything wrong on
my side; eg. the linker paths seem to be using the correct libraries:

LIBRARY_PATH=/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../../lib64/../lib64/:/lib/../lib64/../lib64/:/usr/lib/../lib64/../lib64/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../:/lib/:/usr/lib/:/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../:/lib/:/usr/lib/


Output:
$ /repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
-fno-inline-atomics -flto -static testcase.c
$ gdb -q ./a.out 
Reading symbols from ./a.out...
(gdb) r
Starting program: /home/smatz/gcc-bug/1231/a.out 

Program received signal SIGSEGV, Segmentation fault.
0x00000000004113b9 in __strlen_avx2 ()
(gdb) bt
#0  0x00000000004113b9 in __strlen_avx2 ()
#1  0x0000000000476ec5 in get_cie_encoding (cie=cie@entry=0x34472e95) at
/repo/gcc-trunk/libgcc/unwind-dw2-fde.c:352
#2  0x0000000000477940 in classify_object_over_fdes (ob=<optimized out>,
this_fde=0x4a3030, range=0x7fffffffd880) at
/repo/gcc-trunk/libgcc/unwind-dw2-fde.c:747
#3  0x0000000000477d5a in register_pc_range_for_object (begin=<optimized out>,
ob=0x4aab00 <object>) at /repo/gcc-trunk/libgcc/unwind-dw2-fde.c:118
#4  0x0000000000402771 in frame_dummy ()
#5  0x0000000000000001 in ?? ()
#6  0x000000000040515c in __libc_start_main_impl ()
#7  0x0000000000402681 in _start ()
(gdb) f 1
#1  0x0000000000476ec5 in get_cie_encoding (cie=cie@entry=0x34472e95) at
/repo/gcc-trunk/libgcc/unwind-dw2-fde.c:352
352       p = aug + strlen ((const char *)aug) + 1; /* Skip the augmentation
string.  */
(gdb) list
347       _Unwind_Ptr dummy;
348       _uleb128_t utmp;
349       _sleb128_t stmp;
350
351       aug = cie->augmentation;
352       p = aug + strlen ((const char *)aug) + 1; /* Skip the augmentation
string.  */
353       if (__builtin_expect (cie->version >= 4, 0))
354         {
355           if (p[0] != sizeof (void *) || p[1] != 0)
356             return DW_EH_PE_omit;           /* We are not prepared to
handle unexpected

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/16.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--disable-bootstrap --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --enable-libsanitizer
--disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-20260116131203-r16-6819-ga0ff4b6bba5e89-checking-yes-rtl-df-extra-nobootstrap-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 16.0.1 20260116 (experimental) (GCC)

Reply via email to