[PATCH] D80647: [Driver] Support -fsanitize=shadow-call-stack on aarch64_be
Fangrui Song via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed May 27 10:50:27 PDT 2020
MaskRay created this revision.
MaskRay added reviewers: nickdesaulniers, kcc, pcc.
Herald added subscribers: cfe-commits, danielkiss, kristof.beyls.
Herald added a project: clang.
nickdesaulniers accepted this revision.
nickdesaulniers added a comment.
This revision is now accepted and ready to land.
pcc accepted this revision.
thanks for the quick fix
pcc added a comment.
LGTM
Fixes https://bugs.llvm.org/show_bug.cgi?id=46076
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D80647
Files:
clang/lib/Driver/SanitizerArgs.cpp
clang/test/Driver/fsanitize.c
Index: clang/test/Driver/fsanitize.c
===================================================================
--- clang/test/Driver/fsanitize.c
+++ clang/test/Driver/fsanitize.c
@@ -813,6 +813,10 @@
// CHECK-SCS-MINIMAL: "-fsanitize=shadow-call-stack"
// CHECK-SCS-MINIMAL: "-fsanitize-minimal-runtime"
+// RUN: %clang -target aarch64 -fsanitize=shadow-call-stack %s -### 2>&1 | FileCheck %s --check-prefix=AARCH64-SHADOW
+// RUN: %clang -target aarch64_be -fsanitize=shadow-call-stack %s -### 2>&1 | FileCheck %s --check-prefix=AARCH64-SHADOW
+// AARCH64-SHADOW: "-fsanitize=shadow-call-stack"
+
// RUN: %clang -target aarch64-linux-gnu -fsanitize=scudo %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SCUDO
// RUN: %clang -target arm-linux-androideabi -fsanitize=scudo %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SCUDO
// RUN: %clang -target x86_64-linux-gnu -fsanitize=scudo %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SCUDO
Index: clang/lib/Driver/SanitizerArgs.cpp
===================================================================
--- clang/lib/Driver/SanitizerArgs.cpp
+++ clang/lib/Driver/SanitizerArgs.cpp
@@ -489,8 +489,7 @@
<< lastArgumentForMask(D, Args, Kinds & NeedsLTO) << "-flto";
}
- if ((Kinds & SanitizerKind::ShadowCallStack) &&
- TC.getTriple().getArch() == llvm::Triple::aarch64 &&
+ if ((Kinds & SanitizerKind::ShadowCallStack) && TC.getTriple().isAArch64() &&
!llvm::AArch64::isX18ReservedByDefault(TC.getTriple()) &&
!Args.hasArg(options::OPT_ffixed_x18)) {
D.Diag(diag::err_drv_argument_only_allowed_with)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80647.266594.patch
Type: text/x-patch
Size: 1586 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200527/d1823ecb/attachment-0001.bin>
More information about the cfe-commits
mailing list