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;
}
----------------------------------

Reply via email to