https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111157
--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Simple C testcase:
---------- pr111157_0.c ----------
/* { dg-lto-do run } */
/* { dg-lto-options { { -O2 -flto=auto } } } */
/* { dg-extra-ld-options { -flto-partition=1to1 } } */
extern __attribute__((noinline))
void foo (int *p);
void __attribute__((noinline))
bar (void)
{
int istat;
istat = 1234;
foo (&istat);
if (istat != 1234)
__builtin_abort ();
}
int main (int argc, char **argv)
{
bar ();
return 0;
}
---------- pr111157_1.c ----------
volatile int v = 0;
void __attribute__((noinline))
foo (int *p)
{
*p = 1234;
if (v)
*p = 0;
return;
}
----------------------------------