mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-04 01:26:41 +00:00
[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:
parent
69ada669bc
commit
4205e17d8c
@ -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;
|
||||
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user