i386: testsuite: Adapt fentryname3.c for r14-811 change [PR70150]
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / indirect-thunk-attr-7.c
blobd5f2ba66af08ca1520805e41a1d53ee7874f4480
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
3 /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
5 void func0 (void);
6 void func1 (void);
7 void func2 (void);
8 void func3 (void);
9 void func4 (void);
10 void func4 (void);
11 void func5 (void);
13 __attribute__ ((indirect_branch("thunk-extern")))
14 void
15 bar (int i)
17 switch (i)
19 default:
20 func0 ();
21 break;
22 case 1:
23 func1 ();
24 break;
25 case 2:
26 func2 ();
27 break;
28 case 3:
29 func3 ();
30 break;
31 case 4:
32 func4 ();
33 break;
34 case 5:
35 func5 ();
36 break;
40 /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
41 /* { dg-final { scan-assembler {leaq[ \t]*L[0-9]+\(%rip\)} { target { lp64 && *-*-darwin* } } } } */
42 /* { dg-final { scan-assembler {addl[ \t]*L[0-9]+-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
43 /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk(_nt|)_(r|e)ax" } } */
44 /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
45 /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
46 /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */