2018-03-08 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr40718.c
blob1df3548e0ec9647a0c502bb5a088de3036cd38b0
1 /* { dg-do run } */
2 /* { dg-require-effective-target ia32 } */
3 /* { dg-options "-O1 -foptimize-sibling-calls" } */
5 void abort (void);
7 struct S
9 void (__attribute__((__stdcall__)) *f) (struct S *);
10 int i;
13 void __attribute__((__stdcall__))
14 foo (struct S *s)
16 s->i++;
19 void __attribute__((__stdcall__))
20 bar (struct S *s)
22 foo(s);
23 s->f(s);
26 int main (void)
28 struct S s = { foo, 0 };
30 bar (&s);
31 if (s.i != 2)
32 abort ();
34 return 0;