| /* { dg-do compile } */ |
| /* { dg-options "-O2 -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */ |
| |
| void func0 (void); |
| void func1 (void); |
| void func2 (void); |
| void func3 (void); |
| void func4 (void); |
| void func5 (void); |
| |
| __attribute__ ((indirect_branch("keep"))) |
| void |
| bar (int i) |
| { |
| switch (i) |
| { |
| default: |
| func0 (); |
| break; |
| case 1: |
| func1 (); |
| break; |
| case 2: |
| func2 (); |
| break; |
| case 3: |
| func3 (); |
| break; |
| case 4: |
| func4 (); |
| break; |
| case 5: |
| func5 (); |
| break; |
| } |
| } |
| |
| /* { dg-final { scan-assembler-not "__x86.indirect_thunk" } } */ |
| /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */ |
| /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */ |