1 /* Check that, with keep_aggregate_return_pointer attribute,  callee does
2    not pop the stack for the implicit pointer arg when returning a large
3    structure in memory.  */
4 /* { dg-do compile } */
5 /* { dg-require-effective-target ia32 } */
6 
7 struct foo {
8   int a;
9   int b;
10   int c;
11   int d;
12 };
13 
14 __attribute__ ((ms_abi))
15 struct foo
bar(void)16 bar (void)
17 {
18   struct foo retval;
19   retval.a = 1;
20   retval.b = 2;
21   retval.c = 3;
22   retval.d = 4;
23   return retval;
24 }
25 
26 /* { dg-final { scan-assembler-not "ret\[ \t\]\\\$4" } } */
27 
28 
29