forked from OSchip/llvm-project
clang: do not add -pie for tsan
Revision 220571 removes the requirement to use -pie for tsan binaries. So remove -pie from driver. Also s/hasZeroBaseShadow/requiresPIE/ because that is what it is used for. Msan does not have zero-based shadow, but requires pie. And in general the relation between zero-based shadow and pie is unclear. http://reviews.llvm.org/D6318 llvm-svn: 222526
This commit is contained in:
parent
61c7b6252c
commit
43419a74ac
|
@ -49,7 +49,7 @@ class SanitizerArgs {
|
|||
bool needsDfsanRt() const { return Sanitizers.has(SanitizerKind::DataFlow); }
|
||||
|
||||
bool sanitizesVptr() const { return Sanitizers.has(SanitizerKind::Vptr); }
|
||||
bool hasZeroBaseShadow() const;
|
||||
bool requiresPIE() const;
|
||||
bool needsUnwindTables() const;
|
||||
bool linkCXXRuntimes() const { return LinkCXXRuntimes; }
|
||||
void addArgs(const llvm::opt::ArgList &Args,
|
||||
|
|
|
@ -42,7 +42,7 @@ ID = ALIAS, ID##Group = 1 << SO_##ID##Group,
|
|||
#include "clang/Basic/Sanitizers.def"
|
||||
NeedsUbsanRt = Undefined | Integer,
|
||||
NotAllowedWithTrap = Vptr,
|
||||
HasZeroBaseShadow = Thread | Memory | DataFlow,
|
||||
RequiresPIE = Memory | DataFlow,
|
||||
NeedsUnwindTables = Address | Thread | Memory | DataFlow
|
||||
};
|
||||
}
|
||||
|
@ -140,8 +140,8 @@ bool SanitizerArgs::needsUbsanRt() const {
|
|||
return !UbsanTrapOnError && hasOneOf(Sanitizers, NeedsUbsanRt);
|
||||
}
|
||||
|
||||
bool SanitizerArgs::hasZeroBaseShadow() const {
|
||||
return AsanZeroBaseShadow || hasOneOf(Sanitizers, HasZeroBaseShadow);
|
||||
bool SanitizerArgs::requiresPIE() const {
|
||||
return AsanZeroBaseShadow || hasOneOf(Sanitizers, RequiresPIE);
|
||||
}
|
||||
|
||||
bool SanitizerArgs::needsUnwindTables() const {
|
||||
|
|
|
@ -2507,7 +2507,7 @@ bool FreeBSD::HasNativeLLVMSupport() const {
|
|||
}
|
||||
|
||||
bool FreeBSD::isPIEDefault() const {
|
||||
return getSanitizerArgs().hasZeroBaseShadow();
|
||||
return getSanitizerArgs().requiresPIE();
|
||||
}
|
||||
|
||||
/// NetBSD - NetBSD tool chain which can call as(1) and ld(1) directly.
|
||||
|
@ -3383,7 +3383,7 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
|
|||
}
|
||||
|
||||
bool Linux::isPIEDefault() const {
|
||||
return getSanitizerArgs().hasZeroBaseShadow();
|
||||
return getSanitizerArgs().requiresPIE();
|
||||
}
|
||||
|
||||
/// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly.
|
||||
|
|
Loading…
Reference in New Issue