rust/compiler/rustc_codegen_llvm/src
bors 93ffde6f04 Auto merge of #98208 - ivanloz:master, r=nagisa
Add support for LLVM ShadowCallStack.

LLVMs ShadowCallStack provides backward edge control flow integrity protection by using a separate shadow stack to store and retrieve a function's return address.

LLVM currently only supports this for AArch64 targets. The x18 register is used to hold the pointer to the shadow stack, and therefore this only works on ABIs which reserve x18. Further details are available in the [LLVM ShadowCallStack](https://clang.llvm.org/docs/ShadowCallStack.html) docs.

# Usage
`-Zsanitizer=shadow-call-stack`

# Comments/Caveats
* Currently only enabled for the aarch64-linux-android target
* Requires the platform to define a runtime to initialize the shadow stack, see the [LLVM docs](https://clang.llvm.org/docs/ShadowCallStack.html) for more detail.
2022-07-23 20:01:07 +00:00
..
back Auto merge of #98162 - nextsilicon:support_lto_embed_bitcode, r=davidtwco 2022-07-21 10:13:59 +00:00
coverageinfo add #[rustc_pass_by_value] to more types 2022-03-08 15:39:52 +01:00
debuginfo consistently use VTable over Vtable (matching stable stdlib API RawWakerVTable) 2022-07-20 17:12:07 -04:00
llvm Auto merge of #98208 - ivanloz:master, r=nagisa 2022-07-23 20:01:07 +00:00
abi.rs Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
allocator.rs Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
asm.rs Add tmm_reg clobbers 2022-05-16 20:15:06 -04:00
attributes.rs Add ShadowCallStack Support 2022-07-20 13:43:34 +00:00
base.rs Auto merge of #95689 - lqd:self-profiler, r=wesleywiser 2022-04-16 11:43:28 +00:00
builder.rs Prefer trace level instrumentation for the new noisy instrument attributes 2022-07-05 09:27:06 +00:00
callee.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
common.rs slightly cleaner, if more verbose, vtable handling in codegen backends 2022-07-20 17:12:07 -04:00
consts.rs Auto merge of #99420 - RalfJung:vtable, r=oli-obk 2022-07-22 01:33:49 +00:00
context.rs Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
declare.rs Remove LLVM attribute removal 2022-02-28 00:02:11 -05:00
intrinsic.rs Move vtable_size and vtable_align impls to cg_ssa 2022-07-20 17:12:08 -04:00
lib.rs Stabilize let_chains 2022-07-16 20:17:58 -03:00
llvm_util.rs Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
mono_item.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
type_.rs Remove crate visibility usage in compiler 2022-05-20 20:04:54 -04:00
type_of.rs Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
va_arg.rs Introduce Bx::switch_to_block 2022-02-24 12:18:21 +01:00
value.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00