Skip to content

Commit a2a3e9f

Browse files
committed
[Driver] Support -fsanitize=shadow-call-stack on aarch64_be
Fixes https://bugs.llvm.org/show_bug.cgi?id=46076 Reviewed By: nickdesaulniers, pcc Differential Revision: https://reviews.llvm.org/D80647
1 parent 6407aa9 commit a2a3e9f

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

clang/lib/Driver/SanitizerArgs.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,8 +489,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
489489
<< lastArgumentForMask(D, Args, Kinds & NeedsLTO) << "-flto";
490490
}
491491

492-
if ((Kinds & SanitizerKind::ShadowCallStack) &&
493-
TC.getTriple().getArch() == llvm::Triple::aarch64 &&
492+
if ((Kinds & SanitizerKind::ShadowCallStack) && TC.getTriple().isAArch64() &&
494493
!llvm::AArch64::isX18ReservedByDefault(TC.getTriple()) &&
495494
!Args.hasArg(options::OPT_ffixed_x18)) {
496495
D.Diag(diag::err_drv_argument_only_allowed_with)

clang/test/Driver/fsanitize.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,10 @@
813813
// CHECK-SCS-MINIMAL: "-fsanitize=shadow-call-stack"
814814
// CHECK-SCS-MINIMAL: "-fsanitize-minimal-runtime"
815815

816+
// RUN: %clang -target aarch64 -fsanitize=shadow-call-stack %s -### 2>&1 | FileCheck %s --check-prefix=AARCH64-SCS
817+
// RUN: %clang -target aarch64_be -fsanitize=shadow-call-stack %s -### 2>&1 | FileCheck %s --check-prefix=AARCH64-SCS
818+
// AARCH64-SCS: "-fsanitize=shadow-call-stack"
819+
816820
// RUN: %clang -target aarch64-linux-gnu -fsanitize=scudo %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SCUDO
817821
// RUN: %clang -target arm-linux-androideabi -fsanitize=scudo %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SCUDO
818822
// RUN: %clang -target x86_64-linux-gnu -fsanitize=scudo %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SCUDO

0 commit comments

Comments
 (0)