From: Alexey Samsonov Date: Fri, 9 Aug 2013 10:56:42 +0000 (+0000) Subject: Fixup for r188058: assume hasAsanZeroBaseShadow() is false if ASan is not needed X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=48d0f0788998f10b769696910799255430f2a3d8;p=clang Fixup for r188058: assume hasAsanZeroBaseShadow() is false if ASan is not needed git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188068 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/SanitizerArgs.cpp b/lib/Driver/SanitizerArgs.cpp index 8851316c83..9351e51013 100644 --- a/lib/Driver/SanitizerArgs.cpp +++ b/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/test/Driver/fsanitize.c b/test/Driver/fsanitize.c index 07e7f1e0f1..2e9b5c883d 100644 --- a/test/Driver/fsanitize.c +++ b/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