1  /* { dg-do run } */
       2  /* { dg-options "-O2" } */
       3  
       4  extern void abort (void);
       5  
       6  static int __attribute__((regparm(1)))
       7  bar(void *arg)
       8  {
       9    return arg != bar;
      10  }
      11  
      12  static int __attribute__((noinline,noclone,regparm(1)))
      13  foo(int (__attribute__((regparm(1))) **bar)(void*))
      14  {
      15    return (*bar)(*bar);
      16  }
      17  
      18  int main()
      19  {
      20    int (__attribute__((regparm(1))) *p)(void*) = bar;
      21    if (foo(&p))
      22      abort();
      23    return 0;
      24  }