blob: a48026d1b9589105128ad9acc32795a283db0a4d [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2 -fno-tree-fre -fno-tree-sra -fdump-tree-optimized-slim" } */
struct S
{
int a, b, c;
};
volatile int z1;
int z2 = 44;
void __attribute__((noipa))
use_int (int c)
{
z1 = c;
}
static void __attribute__ ((noinline))
bar (struct S s)
{
use_int (s.c);
}
static void __attribute__ ((noinline))
foo (struct S s)
{
int c = s.c;
if (c != 21)
use_int (c);
s.c = z2;
bar (s);
if (s.c != 44)
__builtin_abort ();
}
int
main (void)
{
struct S s;
s.a = 1;
s.b = 64;
s.c = 21;
foo (s);
return 0;
}
/* { dg-final { scan-tree-dump-not "ellide" "optimized" } } */