summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2015-07-14 15:34:19 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2015-07-14 15:34:19 +0000
commit4a93caf4cf81c719a5049eaa54aa0d4c04f98914 (patch)
tree186b4e77b647178c0d1db3d15607d3a8876366f8 /clang
parente098bd68199a3ac566c75a5a9ad6962d2d8e36d1 (diff)
downloadbcm5719-llvm-4a93caf4cf81c719a5049eaa54aa0d4c04f98914.tar.gz
bcm5719-llvm-4a93caf4cf81c719a5049eaa54aa0d4c04f98914.zip
Pull trivial SanitizerSet methods into the header.
Inlining them is always preferable to a call. NFC. llvm-svn: 242154
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Basic/Sanitizers.h21
-rw-r--r--clang/lib/Basic/Sanitizers.cpp25
2 files changed, 13 insertions, 33 deletions
diff --git a/clang/include/clang/Basic/Sanitizers.h b/clang/include/clang/Basic/Sanitizers.h
index 78c1ddb56f9..98e70dee45e 100644
--- a/clang/include/clang/Basic/Sanitizers.h
+++ b/clang/include/clang/Basic/Sanitizers.h
@@ -17,8 +17,7 @@
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/StringRef.h"
-
-#include <stdint.h>
+#include "llvm/Support/MathExtras.h"
namespace clang {
@@ -47,22 +46,28 @@ enum SanitizerOrdinal : uint64_t {
}
struct SanitizerSet {
- SanitizerSet();
+ SanitizerSet() : Mask(0) {}
/// \brief Check if a certain (single) sanitizer is enabled.
- bool has(SanitizerMask K) const;
+ bool has(SanitizerMask K) const {
+ assert(llvm::isPowerOf2_64(K));
+ return Mask & K;
+ }
/// \brief Check if one or more sanitizers are enabled.
- bool hasOneOf(SanitizerMask K) const;
+ bool hasOneOf(SanitizerMask K) const { return Mask & K; }
/// \brief Enable or disable a certain (single) sanitizer.
- void set(SanitizerMask K, bool Value);
+ void set(SanitizerMask K, bool Value) {
+ assert(llvm::isPowerOf2_64(K));
+ Mask = Value ? (Mask | K) : (Mask & ~K);
+ }
/// \brief Disable all sanitizers.
- void clear();
+ void clear() { Mask = 0; }
/// \brief Returns true if at least one sanitizer is enabled.
- bool empty() const;
+ bool empty() const { return Mask == 0; }
/// \brief Bitmask of enabled sanitizers.
SanitizerMask Mask;
diff --git a/clang/lib/Basic/Sanitizers.cpp b/clang/lib/Basic/Sanitizers.cpp
index d3676b6b465..91b6b2dc74e 100644
--- a/clang/lib/Basic/Sanitizers.cpp
+++ b/clang/lib/Basic/Sanitizers.cpp
@@ -14,34 +14,9 @@
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
-#include "llvm/Support/MathExtras.h"
using namespace clang;
-SanitizerSet::SanitizerSet() : Mask(0) {}
-
-bool SanitizerSet::has(SanitizerMask K) const {
- assert(llvm::countPopulation(K) == 1);
- return Mask & K;
-}
-
-bool SanitizerSet::hasOneOf(SanitizerMask K) const {
- return Mask & K;
-}
-
-void SanitizerSet::set(SanitizerMask K, bool Value) {
- assert(llvm::countPopulation(K) == 1);
- Mask = Value ? (Mask | K) : (Mask & ~K);
-}
-
-void SanitizerSet::clear() {
- Mask = 0;
-}
-
-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)
OpenPOWER on IntegriCloud