summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2016-02-24 22:12:18 +0000
committerAnna Zaks <ganna@apple.com>2016-02-24 22:12:18 +0000
commit40148f1716b5c75f0614e502de82bf1c92fd1b4c (patch)
tree133f62b81571898a4b57210485da5552420ed0af
parent7b5caa4a72b111b4dc83c95c1ff4be5d539d7417 (diff)
downloadbcm5719-llvm-40148f1716b5c75f0614e502de82bf1c92fd1b4c.tar.gz
bcm5719-llvm-40148f1716b5c75f0614e502de82bf1c92fd1b4c.zip
[asan] Do not instrument globals in the special "LLVM" sections
llvm-svn: 261794
-rw-r--r--llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp2
-rw-r--r--llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll2
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
index 2f404fe1626..fff6279094f 100644
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -1228,7 +1228,7 @@ bool AddressSanitizerModule::ShouldInstrumentGlobal(GlobalVariable *G) {
// Globals from llvm.metadata aren't emitted, do not instrument them.
if (Section == "llvm.metadata") return false;
// Do not instrument globals from special LLVM sections.
- if (Section.find("__llvm") != StringRef::npos) return false;
+ if (Section.find("__llvm") != StringRef::npos || Section.find("__LLVM") != StringRef::npos) return false;
// Do not instrument function pointers to initialization and termination
// routines: dynamic linker will not properly handle redzones.
diff --git a/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll b/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll
index 854f5cb851e..0ca8975a675 100644
--- a/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll
+++ b/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll
@@ -11,9 +11,11 @@ target triple = "x86_64-apple-macosx10.10.0"
@.str_noinst = private unnamed_addr constant [4 x i8] c"aaa\00", section "llvm.metadata"
@.str_noinst_prof = private unnamed_addr constant [4 x i8] c"aaa\00", section "__DATA,__llvm_covmap"
+@.str_noinst_LLVM = private unnamed_addr constant [4 x i8] c"aaa\00", section "__LLVM,__not_visible"
@.str_inst = private unnamed_addr constant [4 x i8] c"aaa\00"
; CHECK-NOT: {{asan_gen.*str_noinst}}
; CHECK-NOT: {{asan_gen.*str_noinst_prof}}
+; CHECK-NOT: {{asan_gen.*str_noinst_LLVM}}
; CHECK: {{asan_gen.*str_inst}}
; CHECK: @asan.module_ctor
OpenPOWER on IntegriCloud