1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mindirect-branch=keep -mharden-sls=all" } */
3 /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
4
5 extern void (*fptr) (void);
6
7 void
8 foo (void)
9 {
10 fptr ();
11 }
12
13 /* { dg-final { scan-assembler "jmp\[ \t\]+\\*_?fptr" { target { ! x32 } } } } */
14 /* { dg-final { scan-assembler "movl\[ \t\]+fptr\\(%rip\\), %eax" { target x32 } } } */
15 /* { dg-final { scan-assembler "jmp\[ \t\]+\\*%rax" { target x32 } } } */
16 /* { dg-final { scan-assembler-times "int3" 1 } } */