rust/compiler/rustc_session/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
..
cgu_reuse_tracker.rs Prettify rustc_session fmt with capturing args (nfc) 2022-03-24 22:38:13 -07:00
code_stats.rs avoid some Symbol to String conversions 2022-07-17 04:09:20 +09:00
config.rs Do not ICE when we have -Zunpretty=expand with invalid ABI 2022-07-16 20:35:54 -07:00
cstore.rs Stabilize native library modifier syntax and the whole-archive modifier specifically 2022-03-30 23:53:21 +03:00
filesearch.rs Prettify rustc_session fmt with capturing args (nfc) 2022-03-24 22:38:13 -07:00
lib.rs Stabilize let_chains 2022-07-16 20:17:58 -03:00
options.rs Auto merge of #98208 - ivanloz:master, r=nagisa 2022-07-23 20:01:07 +00:00
output.rs Use a let-chain in _session::output (nfc) 2022-03-24 22:38:32 -07:00
parse.rs update cfg(bootstrap)s 2022-07-01 15:48:23 +02:00
search_paths.rs incr. comp.: Don't export impl_stable_hash_via_hash!() and warn about using it. 2022-04-19 10:43:20 +02:00
session.rs Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
utils.rs rustc_parse: Move AST -> TokenStream conversion logic to rustc_ast 2022-05-22 12:01:07 +03:00