gcc/
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr51323.c
blob929579983261d4dfc58d3746315828dbc9c83fe0
1 /* PR middle-end/51323 */
3 extern void abort (void);
4 struct S { int a, b, c; };
5 int v;
7 __attribute__((noinline, noclone)) void
8 foo (int x, int y, int z)
10 if (x != v || y != 0 || z != 9)
11 abort ();
14 static inline int
15 baz (const struct S *p)
17 return p->b;
20 __attribute__((noinline, noclone)) void
21 bar (int x, struct S y)
23 foo (baz (&y), 0, x);
26 int
27 main ()
29 struct S s;
30 v = 3; s.a = v - 1; s.b = v; s.c = v + 1;
31 bar (9, s);
32 v = 17; s.a = v - 1; s.b = v; s.c = v + 1;
33 bar (9, s);
34 return 0;