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

--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I've tried to create small testcase for this:
__attribute__((noipa, noreturn)) void foo (void) { while (1) ; }
__attribute__((noinline)) void bar (void) { asm (""); foo (); }
void baz (int x) { if (x) bar (); }
and
extern void bar (void);
void qux (int x) { if (!x) bar (); }

./xgcc -B ./ -O2 -flto -ffat-lto-objects pr93384_0.c -S -fpic
-fno-semantic-interposition
./xgcc -B ./ -O2 -flto -ffat-lto-objects pr93384_1.c -S -fpic
-fno-semantic-interposition
as -o pr93384_0.{o,s}
as -o pr93384_1.{o,s}
./xgcc -B ./ -O2 -flto -shared -fpic -fno-semantic-interposition -o pr93384.so
pr93384_{0,1}.o -save-temps -v -flto-partition=one

but unfortunately (at least on x86_64-linux) it doesn't reproduce this, the
bar.localalias gets suffixed in one case to bar.localalias.lto_priv.0 and in
another one (though it didn't exist in the assembly at that point) to
bar.localalias.lto_priv.1.

Reply via email to