1/* PR target/39496 */ 2/* { dg-do compile { target { { *-*-linux* *-*-gnu* } && ia32 } } } */ 3/* { dg-options "-O0 -fverbose-asm -fno-omit-frame-pointer -mtune=i686 -msse2 -mfpmath=sse" } */ 4/* Verify that {foo,bar}{,2}param are all passed on the stack, using 5 normal calling conventions, when not optimizing. */ 6/* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*fooparam," } } */ 7/* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*barparam," } } */ 8/* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*foo2param," } } */ 9/* { dg-final { scan-assembler "\[^0-9-\]8\\(%ebp\\),\[^\n\]*bar2param," } } */ 10 11static inline int foo (int fooparam) 12{ 13 return fooparam; 14} 15 16static int bar (int barparam) 17{ 18 return foo (barparam); 19} 20 21static inline double foo2 (double foo2param) 22{ 23 return foo2param; 24} 25 26static double bar2 (double bar2param) 27{ 28 return foo2 (bar2param); 29} 30 31int 32main () 33{ 34 return bar (0) + bar2 (0.0); 35} 36