/* { dg-do run } */
/* { dg-options "-O3  -march=z900 --save-temps -mindirect-branch-call=thunk -mindirect-branch-table" } */

int gl;

void __attribute__((noinline,noclone))
foo (int a)
{
  gl = a + 40;
}

int __attribute__((noinline,noclone))
foo_value (int a)
{
  return a + 40;
}

void*  __attribute__((noinline,noclone))
get_fptr (int a)
{
  switch (a)
    {
    case 0: return &foo; break;
    case 1: return &foo_value; break;
    default: __builtin_abort ();
    }
}

void (*f) (int);
int (*g) (int);

int
main ()
{
  int res;

  f = get_fptr(0);
  f (2);
  if (gl != 42)
    __builtin_abort ();

  g = get_fptr(1);
  if (g (2) != 42)
    __builtin_abort ();

  return 0;
}

/* 2 x main
/* { dg-final { scan-assembler-times "brasl\t%r\[0-9\]*,__s390_indirect_jump" 2 } } */
/* { dg-final { scan-assembler "ex\t" } } */

/* { dg-final { scan-assembler-not "section\t.s390_indirect_jump" } } */
/* { dg-final { scan-assembler     "section\t.s390_indirect_call" } } */
/* { dg-final { scan-assembler-not "section\t.s390_return_reg" } } */
/* { dg-final { scan-assembler-not "section\t.s390_return_mem" } } */
