r222526 - clang: do not add -pie for tsan
Dmitry Vyukov
dvyukov at google.com
Fri Nov 21 04:19:02 PST 2014
Author: dvyukov
Date: Fri Nov 21 06:19:01 2014
New Revision: 222526
URL: http://llvm.org/viewvc/llvm-project?rev=222526&view=rev
Log:
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
Modified:
cfe/trunk/include/clang/Driver/SanitizerArgs.h
cfe/trunk/lib/Driver/SanitizerArgs.cpp
cfe/trunk/lib/Driver/ToolChains.cpp
Modified: cfe/trunk/include/clang/Driver/SanitizerArgs.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/SanitizerArgs.h?rev=222526&r1=222525&r2=222526&view=diff
==============================================================================
--- cfe/trunk/include/clang/Driver/SanitizerArgs.h (original)
+++ cfe/trunk/include/clang/Driver/SanitizerArgs.h Fri Nov 21 06:19:01 2014
@@ -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,
Modified: cfe/trunk/lib/Driver/SanitizerArgs.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/SanitizerArgs.cpp?rev=222526&r1=222525&r2=222526&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/SanitizerArgs.cpp (original)
+++ cfe/trunk/lib/Driver/SanitizerArgs.cpp Fri Nov 21 06:19:01 2014
@@ -42,7 +42,7 @@ ID = ALIAS, ID##Group = 1 << SO_##ID##Gr
#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 {
Modified: cfe/trunk/lib/Driver/ToolChains.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=222526&r1=222525&r2=222526&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains.cpp Fri Nov 21 06:19:01 2014
@@ -2507,7 +2507,7 @@ bool FreeBSD::HasNativeLLVMSupport() con
}
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
}
bool Linux::isPIEDefault() const {
- return getSanitizerArgs().hasZeroBaseShadow();
+ return getSanitizerArgs().requiresPIE();
}
/// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly.
More information about the cfe-commits
mailing list