OSDN Git Service

a50606793f42e563e24e7a201b264b0b848edabe
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / aggregate-ret1.c
1 /* target/36834 */
2 /* Check that, with keep_aggregate_return_pointer attribute,  callee does
3    not pop the stack for the implicit pointer arg when returning a large
4    structure in memory.  */
5 /* { dg-do compile { target i?86-*-* } } */
6
7 struct foo {
8   int a;
9   int b;
10   int c;
11   int d;
12 };
13
14 __attribute__ ((callee_pop_aggregate_return(0)))
15 struct foo
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