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)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