diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2013-04-09 04:35:11 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2013-04-09 04:35:11 +0000 |
commit | 54d770cb1fedf23466eb75e7f34fa561e8d63d23 (patch) | |
tree | a1e95e1c4200129e7d038a54da1ab6e80da42f41 /clang/lib/Driver/SanitizerArgs.h | |
parent | 61e221f68de5b7b32cea552e3b4ef7838eb2182c (diff) | |
download | bcm5719-llvm-54d770cb1fedf23466eb75e7f34fa561e8d63d23.tar.gz bcm5719-llvm-54d770cb1fedf23466eb75e7f34fa561e8d63d23.zip |
If the user requested a zero-base-shadow sanitizer, infer -pie and -fPIC when appropriate.
Differential Revision: http://llvm-reviews.chandlerc.com/D502
llvm-svn: 179082
Diffstat (limited to 'clang/lib/Driver/SanitizerArgs.h')
-rw-r--r-- | clang/lib/Driver/SanitizerArgs.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.h b/clang/lib/Driver/SanitizerArgs.h index e61f15ad624..326d80db72e 100644 --- a/clang/lib/Driver/SanitizerArgs.h +++ b/clang/lib/Driver/SanitizerArgs.h @@ -38,7 +38,8 @@ class SanitizerArgs { NeedsTsanRt = Thread, NeedsMsanRt = Memory, NeedsUbsanRt = Undefined | Integer, - NotAllowedWithTrap = Vptr + NotAllowedWithTrap = Vptr, + HasZeroBaseShadow = Thread | Memory }; unsigned Kind; std::string BlacklistFile; @@ -50,7 +51,7 @@ class SanitizerArgs { SanitizerArgs() : Kind(0), BlacklistFile(""), MsanTrackOrigins(false), AsanZeroBaseShadow(false), UbsanTrapOnError(false) {} /// Parses the sanitizer arguments from an argument list. - SanitizerArgs(const Driver &D, const ArgList &Args); + SanitizerArgs(const ToolChain &TC, const ArgList &Args); bool needsAsanRt() const { return Kind & NeedsAsanRt; } bool needsTsanRt() const { return Kind & NeedsTsanRt; } @@ -63,6 +64,9 @@ class SanitizerArgs { bool sanitizesVptr() const { return Kind & Vptr; } bool notAllowedWithTrap() const { return Kind & NotAllowedWithTrap; } + bool hasZeroBaseShadow() const { + return (Kind & HasZeroBaseShadow) || AsanZeroBaseShadow; + } void addArgs(const ArgList &Args, ArgStringList &CmdArgs) const { if (!Kind) |