diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2015-05-11 21:39:14 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2015-05-11 21:39:14 +0000 |
commit | 3eea677f3a10a4cbda9e3da8e05532168c750753 (patch) | |
tree | ec2d744cd4852115f6f684a1928075cb14c2109f /clang/lib/Basic | |
parent | 83fd486ff4266db238c2ad423caeb5f388ee07dc (diff) | |
download | bcm5719-llvm-3eea677f3a10a4cbda9e3da8e05532168c750753.tar.gz bcm5719-llvm-3eea677f3a10a4cbda9e3da8e05532168c750753.zip |
Unify sanitizer kind representation between the driver and the rest of the compiler.
No functional change.
Differential Revision: http://reviews.llvm.org/D9618
llvm-svn: 237055
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Sanitizers.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/clang/lib/Basic/Sanitizers.cpp b/clang/lib/Basic/Sanitizers.cpp index e9aaa366e32..e71830aaa9c 100644 --- a/clang/lib/Basic/Sanitizers.cpp +++ b/clang/lib/Basic/Sanitizers.cpp @@ -11,25 +11,26 @@ // //===----------------------------------------------------------------------===// #include "clang/Basic/Sanitizers.h" +#include "llvm/Support/MathExtras.h" using namespace clang; -SanitizerSet::SanitizerSet() : Kinds(0) {} +SanitizerSet::SanitizerSet() : Mask(0) {} -bool SanitizerSet::has(SanitizerKind K) const { - unsigned Bit = static_cast<unsigned>(K); - return Kinds & (1 << Bit); +bool SanitizerSet::has(SanitizerMask K) const { + assert(llvm::countPopulation(K) == 1); + return Mask & K; } -void SanitizerSet::set(SanitizerKind K, bool Value) { - unsigned Bit = static_cast<unsigned>(K); - Kinds = Value ? (Kinds | (1 << Bit)) : (Kinds & ~(1 << Bit)); +void SanitizerSet::set(SanitizerMask K, bool Value) { + assert(llvm::countPopulation(K) == 1); + Mask = Value ? (Mask | K) : (Mask & ~K); } void SanitizerSet::clear() { - Kinds = 0; + Mask = 0; } bool SanitizerSet::empty() const { - return Kinds == 0; + return Mask == 0; } |