// Test that the `cs` prefix is (not) added into a `call` and a `jmp` to the // indirect thunk when the `-Zindirect-branch-cs-prefix` flag is (not) set. //@ revisions: unset set //@ assembly-output: emit-asm //@ compile-flags: -Copt-level=3 -Cunsafe-allow-abi-mismatch=retpoline,retpoline-external-thunk,indirect-branch-cs-prefix -Zretpoline-external-thunk //@ [set] compile-flags: -Zindirect-branch-cs-prefix //@ only-x86_64 //@ ignore-apple Symbol is called `___x86_indirect_thunk` (Darwin's extra underscore) #![crate_type = "lib"] // CHECK-LABEL: foo: #[no_mangle] pub fn foo(g: fn()) { // unset-NOT: cs // unset: callq {{__x86_indirect_thunk.*}} // set: cs // set-NEXT: callq {{__x86_indirect_thunk.*}} g(); // unset-NOT: cs // unset: jmp {{__x86_indirect_thunk.*}} // set: cs // set-NEXT: jmp {{__x86_indirect_thunk.*}} g(); }