Add codegen option for branch protection and pointer authentication on AArch64
The branch-protection codegen option enables the use of hint-space pointer authentication code for AArch64 targets
This commit is contained in:
parent
2446a21595
commit
837cc1687f
12 changed files with 266 additions and 7 deletions
41
src/test/codegen/branch-protection.rs
Normal file
41
src/test/codegen/branch-protection.rs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
// Test that the correct module flags are emitted with different branch protection flags.
|
||||
|
||||
// revisions: bti pac-ret leaf b-key
|
||||
// min-llvm-version: 12.0.0
|
||||
// needs-llvm-components: aarch64
|
||||
// [bti] compile-flags: -C branch-protection=bti
|
||||
// [pac-ret] compile-flags: -C branch-protection=pac-ret
|
||||
// [leaf] compile-flags: -C branch-protection=pac-ret+leaf
|
||||
// [b-key] compile-flags: -C branch-protection=pac-ret+b-key
|
||||
// compile-flags: --target aarch64-unknown-linux-gnu
|
||||
|
||||
#![crate_type = "lib"]
|
||||
#![feature(no_core, lang_items)]
|
||||
#![no_core]
|
||||
|
||||
#[lang="sized"]
|
||||
trait Sized { }
|
||||
|
||||
// A basic test function.
|
||||
pub fn test() {
|
||||
}
|
||||
|
||||
// bti: !"branch-target-enforcement", i32 1
|
||||
// bti: !"sign-return-address", i32 0
|
||||
// bti: !"sign-return-address-all", i32 0
|
||||
// bti: !"sign-return-address-with-bkey", i32 0
|
||||
|
||||
// pac-ret: !"branch-target-enforcement", i32 0
|
||||
// pac-ret: !"sign-return-address", i32 1
|
||||
// pac-ret: !"sign-return-address-all", i32 0
|
||||
// pac-ret: !"sign-return-address-with-bkey", i32 0
|
||||
|
||||
// leaf: !"branch-target-enforcement", i32 0
|
||||
// leaf: !"sign-return-address", i32 1
|
||||
// leaf: !"sign-return-address-all", i32 1
|
||||
// leaf: !"sign-return-address-with-bkey", i32 0
|
||||
|
||||
// b-key: !"branch-target-enforcement", i32 0
|
||||
// b-key: !"sign-return-address", i32 1
|
||||
// b-key: !"sign-return-address-all", i32 0
|
||||
// b-key: !"sign-return-address-with-bkey", i32 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue