[asan] Add a hidden option for Mach-O global metadata liveness tracking

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274578 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Ryan Govostes 2016-07-05 21:53:08 +00:00
parent 69ada669bc
commit 4205e17d8c
2 changed files with 11 additions and 1 deletions

View File

@ -245,6 +245,13 @@ static cl::opt<bool>
" variables"),
cl::Hidden, cl::init(false));
static cl::opt<bool>
ClUseMachOGlobalsSection("asan-globals-live-support",
cl::desc("Use linker features to support dead "
"code stripping of globals "
"(Mach-O only)"),
cl::Hidden, cl::init(false));
// Debug flags.
static cl::opt<int> ClDebug("asan-debug", cl::desc("debug"), cl::Hidden,
cl::init(0));
@ -1338,6 +1345,9 @@ bool AddressSanitizerModule::ShouldInstrumentGlobal(GlobalVariable *G) {
// binary in order to allow the linker to properly dead strip. This is only
// supported on recent versions of ld64.
bool AddressSanitizerModule::ShouldUseMachOGlobalsSection() const {
if (!ClUseMachOGlobalsSection)
return false;
if (!TargetTriple.isOSBinFormatMachO())
return false;

View File

@ -2,7 +2,7 @@
; allowing dead stripping to be performed, and that the appropriate runtime
; routines are invoked.
; RUN: opt < %s -asan -asan-module -S | FileCheck %s
; RUN: opt < %s -asan -asan-module -asan-globals-live-support -S | FileCheck %s
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.11.0"