1 /* { dg-do compile } */
2 /* { dg-options "-O3 -g -finline-limit=100" } */
3
4 #define WORK(x, y) __asm__ ("" : "=r" (x) : "0" (x)); y += x + 26
5 #define SOME_WORK(x, y) WORK(x, y); WORK(x, y); WORK(x, y); WORK(x, y)
6 #define MORE_WORK(x, y) SOME_WORK(x, y); SOME_WORK(x, y); SOME_WORK(x, y)
7 #define EVEN_MORE_WORK(x, y) MORE_WORK(x, y); MORE_WORK(x, y); MORE_WORK(x, y)
8 #define LOTS_OF_WORK(x, y) EVEN_MORE_WORK(x, y); EVEN_MORE_WORK(x, y)
9
foo(int x)10 static int __attribute__((unused)) foo (int x)
11 {
12 static inline int bar (int x)
13 {
14 int y;
15 y = x;
16 LOTS_OF_WORK(x, y);
17 LOTS_OF_WORK(x, y);
18 LOTS_OF_WORK(x, y);
19 LOTS_OF_WORK(x, y);
20 LOTS_OF_WORK(x, y);
21 LOTS_OF_WORK(x, y);
22 return y;
23 }
24 return bar(x);
25 }
26