diff options
| author | Fangrui Song <maskray@google.com> | 2020-05-27 10:21:59 -0700 |
|---|---|---|
| committer | Tom Stellard <tstellar@redhat.com> | 2020-06-24 09:19:03 -0700 |
| commit | 1a25347f574f22125634ae89e5bfc593cdc57eee (patch) | |
| tree | 26a2a4cc70eb8340d16096b7e5380411cbf9d106 | |
| parent | be4501f6e487fc27b242e0799cfeed3b4eedc4cd (diff) | |
| download | bcm5719-llvm-1a25347f574f22125634ae89e5bfc593cdc57eee.tar.gz bcm5719-llvm-1a25347f574f22125634ae89e5bfc593cdc57eee.zip | |
[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
(cherry picked from commit a2a3e9f0a6e91103a0d1fa73086dbdf109c48f69)
| -rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 3 | ||||
| -rw-r--r-- | clang/test/Driver/fsanitize.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index ac9a294ee3f..60fd932fbe6 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -454,8 +454,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, << 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) diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c index f02f94d8c5a..abd3fa1b584 100644 --- a/clang/test/Driver/fsanitize.c +++ b/clang/test/Driver/fsanitize.c @@ -809,6 +809,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-SCS +// RUN: %clang -target aarch64_be -fsanitize=shadow-call-stack %s -### 2>&1 | FileCheck %s --check-prefix=AARCH64-SCS +// AARCH64-SCS: "-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 |

