2 /* { dg-do compile { target ia32 } } */
3 /* { dg-options "-O2 -mfunction-return=thunk-inline" } */
5 struct s
{ _Complex
unsigned short x
; };
6 struct s gs
= { 100 + 200i
};
7 struct s
__attribute__((noinline
)) foo (void) { return gs
; }
9 /* { dg-final { scan-assembler-times "popl\[\\t \]*%ecx" 1 } } */
10 /* { dg-final { scan-assembler "lea\[l\]?\[\\t \]*4\\(%esp\\), %esp" } } */
11 /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk_ecx" } } */
12 /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
13 /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
14 /* { dg-final { scan-assembler {\tpause} } } */
15 /* { dg-final { scan-assembler {\tlfence} } } */