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
7struct foo {
8  int a;
9  int b;
10  int c;
11  int d;
12};
13
14__attribute__ ((ms_abi))
15struct foo
16bar (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