1 /* { dg-do compile } */
2 /* { dg-options "-O3 -march=z10 --save-temps -mindirect-branch-call=thunk-extern -mindirect-branch-table" } */
6 void __attribute__((noinline
,noclone
))
12 int __attribute__((noinline
,noclone
))
18 void* __attribute__((noinline
,noclone
))
23 case 0: return &foo
; break;
24 case 1: return &foo_value
; break;
25 default: __builtin_abort ();
50 /* { dg-final { scan-assembler-times "brasl\t%r\[0-9\]*,__s390_indirect_jump" 2 } } */
52 /* No thunks due to thunk-extern. */
53 /* { dg-final { scan-assembler-not "exrl" } } */
54 /* { dg-final { scan-assembler-not ".globl __s390_indirect_jump" } } */
56 /* { dg-final { scan-assembler-not "section\t.s390_indirect_jump" } } */
57 /* { dg-final { scan-assembler "section\t.s390_indirect_call" } } */
58 /* { dg-final { scan-assembler-not "section\t.s390_return_reg" } } */
59 /* { dg-final { scan-assembler-not "section\t.s390_return_mem" } } */