diff options
| -rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 2 | ||||
| -rw-r--r-- | clang/test/Driver/fsanitize.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 8851316c83c..9351e510136 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -193,6 +193,8 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args, } bool SanitizerArgs::hasAsanZeroBaseShadow(const ToolChain &TC) const { + if (!needsAsanRt()) + return false; if (AsanZeroBaseShadow != AZBSK_Default) return AsanZeroBaseShadow == AZBSK_On; // Zero-base shadow is used by default only on Android. diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c index 07e7f1e0f1d..2e9b5c883dd 100644 --- a/clang/test/Driver/fsanitize.c +++ b/clang/test/Driver/fsanitize.c @@ -120,6 +120,9 @@ // CHECK-ANDROID-ASAN-NO-PIE: "-mrelocation-model" "pic" "-pic-level" "2" "-pie-level" "2" // CHECK-ANDROID-ASAN-NO-PIE: "-pie" +// RUN: %clang -target arm-linux-androideabi %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ANDROID-NO-ASAN +// CHECK-ANDROID-NO-ASAN: "-mrelocation-model" "static" + // RUN: %clang -target arm-linux-androideabi -fsanitize=address -fsanitize-address-zero-base-shadow %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ANDROID-ASAN-ZERO-BASE // CHECK-ANDROID-ASAN-ZERO-BASE-NOT: argument unused during compilation |

