/* { dg-do compile } */
/* { dg-options "-O3 -g -finline-limit=100" } */

#define WORK(x, y) __asm__ ("" : "=r" (x) : "0" (x)); y += x + 26
#define SOME_WORK(x, y) WORK(x, y); WORK(x, y); WORK(x, y); WORK(x, y)
#define MORE_WORK(x, y) SOME_WORK(x, y); SOME_WORK(x, y); SOME_WORK(x, y)
#define EVEN_MORE_WORK(x, y) MORE_WORK(x, y); MORE_WORK(x, y); MORE_WORK(x, y)
#define LOTS_OF_WORK(x, y) EVEN_MORE_WORK(x, y); EVEN_MORE_WORK(x, y)

static int __attribute__((unused)) foo (int x)
{
  inline int bar (int x)
    {
      int y;
      y = x;
      LOTS_OF_WORK(x, y);
      LOTS_OF_WORK(x, y);
      LOTS_OF_WORK(x, y);
      LOTS_OF_WORK(x, y);
      LOTS_OF_WORK(x, y);
      LOTS_OF_WORK(x, y);
      return y;
    }
  return bar(x);
}
