https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104366
Bug ID: 104366
Summary: Regression: infinite loop in add_sibling_attributes
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: bj...@xn--rombobjrn-67a.se
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Created attachment 52339
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52339&action=edit
source code for reproducing the problem
Compiling certain Ada source files with -g -flto -ffat-lto-objects triggers
what looks like infinite tail recursion in add_sibling_attributes in
dwarf2out.c. This began when GCC 12 landed in Fedora Rawhide. It does not
happen in GCC 11. Removing either -g, -flto or -ffat-lto-objects, or appending
-fno-lto, works around the problem.
It seems to be specific to 64-bit arches. Builds consistently continue running
indefinitely on all of Fedora's four 64-bit arches, but not on the two 32-bit
arches. I have investigated only on x86-64.
It's probably more or less specific to Ada, because otherwise it would have
caused lots and lots of failures in the recent Fedora mass rebuild.
# gcc --version
gcc (GCC) 12.0.1 20220129 (Red Hat 12.0.1-0)
# rpm -q gcc-gnat
gcc-gnat-12.0.1-0.4.fc36.x86_64
To reproduce:
gnatchop sources.ada
gcc -c -g -flto -ffat-lto-objects posix-process_environment.adb