diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2015-05-11 21:39:20 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2015-05-11 21:39:20 +0000 |
commit | bf59c34bfd27dc876a32fc38332eb8a3028fa8f9 (patch) | |
tree | 31ceadb169109903b68f5825ae18b8e372cba3ba /clang/lib/Basic | |
parent | 3eea677f3a10a4cbda9e3da8e05532168c750753 (diff) | |
download | bcm5719-llvm-bf59c34bfd27dc876a32fc38332eb8a3028fa8f9.tar.gz bcm5719-llvm-bf59c34bfd27dc876a32fc38332eb8a3028fa8f9.zip |
Move sanitizer parser and group expander from Driver to Basic.
No functional change.
Differential Revision: http://reviews.llvm.org/D9621
llvm-svn: 237056
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Sanitizers.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/clang/lib/Basic/Sanitizers.cpp b/clang/lib/Basic/Sanitizers.cpp index e71830aaa9c..8c4884b8ec3 100644 --- a/clang/lib/Basic/Sanitizers.cpp +++ b/clang/lib/Basic/Sanitizers.cpp @@ -11,6 +11,9 @@ // //===----------------------------------------------------------------------===// #include "clang/Basic/Sanitizers.h" +#include "clang/Basic/LLVM.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/ADT/StringSwitch.h" #include "llvm/Support/MathExtras.h" using namespace clang; @@ -34,3 +37,22 @@ void SanitizerSet::clear() { bool SanitizerSet::empty() const { return Mask == 0; } + +SanitizerMask clang::parseSanitizerValue(StringRef Value, bool AllowGroups) { + SanitizerMask ParsedKind = llvm::StringSwitch<SanitizerMask>(Value) +#define SANITIZER(NAME, ID) .Case(NAME, SanitizerKind::ID) +#define SANITIZER_GROUP(NAME, ID, ALIAS) \ + .Case(NAME, AllowGroups ? SanitizerKind::ID##Group : 0) +#include "clang/Basic/Sanitizers.def" + .Default(0); + return ParsedKind; +} + +SanitizerMask clang::expandSanitizerGroups(SanitizerMask Kinds) { +#define SANITIZER(NAME, ID) +#define SANITIZER_GROUP(NAME, ID, ALIAS) \ + if (Kinds & SanitizerKind::ID##Group) \ + Kinds |= SanitizerKind::ID; +#include "clang/Basic/Sanitizers.def" + return Kinds; +} |