mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-17 18:03:49 +00:00
[asan] Enable -asan-use-private-alias on Darwin/Mach-O, add test for ODR false positive with LTO (llvm part)
The '-asan-use-private-alias’ option (disabled by default) option is currently only enabled for Linux and ELF, but it also works on Darwin and Mach-O. This option also fixes a known problem with LTO on Darwin (https://github.com/google/sanitizers/issues/647). This patch enables the support for Darwin (but still keeps it off by default) and adds the LTO test case. Differential Revision: https://reviews.llvm.org/D24292 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281470 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9502e5be6f
commit
62660f0e5a
@ -1605,7 +1605,8 @@ bool AddressSanitizerModule::InstrumentGlobals(IRBuilder<> &IRB, Module &M) {
|
||||
Constant *ODRIndicator = ConstantExpr::getNullValue(IRB.getInt8PtrTy());
|
||||
GlobalValue *InstrumentedGlobal = NewGlobal;
|
||||
|
||||
bool CanUsePrivateAliases = TargetTriple.isOSBinFormatELF();
|
||||
bool CanUsePrivateAliases =
|
||||
TargetTriple.isOSBinFormatELF() || TargetTriple.isOSBinFormatMachO();
|
||||
if (CanUsePrivateAliases && ClUsePrivateAliasForGlobals) {
|
||||
// Create local alias for NewGlobal to avoid crash on ODR between
|
||||
// instrumented and non-instrumented libraries.
|
||||
|
Loading…
x
Reference in New Issue
Block a user