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