From adf61e3b2b72f4a06b3ac5cf90d49deda42da605 Mon Sep 17 00:00:00 2001 From: Ivan Lozano Date: Fri, 17 Jun 2022 14:14:58 -0400 Subject: Add ShadowCallStack Support Adds support for the LLVM ShadowCallStack sanitizer. --- src/tools/compiletest/src/header.rs | 3 +++ src/tools/compiletest/src/util.rs | 2 ++ 2 files changed, 5 insertions(+) (limited to 'src/tools/compiletest') diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 17f2b77dab0..37643c29d4d 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -862,6 +862,7 @@ pub fn make_test_description( let has_tsan = util::TSAN_SUPPORTED_TARGETS.contains(&&*config.target); let has_hwasan = util::HWASAN_SUPPORTED_TARGETS.contains(&&*config.target); let has_memtag = util::MEMTAG_SUPPORTED_TARGETS.contains(&&*config.target); + let has_shadow_call_stack = util::SHADOWCALLSTACK_SUPPORTED_TARGETS.contains(&&*config.target); // for `-Z gcc-ld=lld` let has_rust_lld = config .compile_lib_path @@ -899,6 +900,8 @@ pub fn make_test_description( ignore |= !has_tsan && config.parse_name_directive(ln, "needs-sanitizer-thread"); ignore |= !has_hwasan && config.parse_name_directive(ln, "needs-sanitizer-hwaddress"); ignore |= !has_memtag && config.parse_name_directive(ln, "needs-sanitizer-memtag"); + ignore |= !has_shadow_call_stack + && config.parse_name_directive(ln, "needs-sanitizer-shadow-call-stack"); ignore |= config.target_panic == PanicStrategy::Abort && config.parse_name_directive(ln, "needs-unwind"); ignore |= config.target == "wasm32-unknown-unknown" diff --git a/src/tools/compiletest/src/util.rs b/src/tools/compiletest/src/util.rs index 215af347f17..102b9308dc9 100644 --- a/src/tools/compiletest/src/util.rs +++ b/src/tools/compiletest/src/util.rs @@ -121,6 +121,8 @@ pub const HWASAN_SUPPORTED_TARGETS: &[&str] = pub const MEMTAG_SUPPORTED_TARGETS: &[&str] = &["aarch64-linux-android", "aarch64-unknown-linux-gnu"]; +pub const SHADOWCALLSTACK_SUPPORTED_TARGETS: &[&str] = &["aarch64-linux-android"]; + const BIG_ENDIAN: &[&str] = &[ "aarch64_be", "armebv7r", -- cgit 1.4.1-3-g733a5