15 #ifndef LLVM_CLANG_BASIC_SANITIZERS_H
16 #define LLVM_CLANG_BASIC_SANITIZERS_H
19 #include "llvm/ADT/StringRef.h"
20 #include "llvm/Support/MathExtras.h"
26 namespace SanitizerKind {
31 #define SANITIZER(NAME, ID) SO_##ID,
32 #define SANITIZER_GROUP(NAME, ID, ALIAS) SO_##ID##Group,
33 #include "clang/Basic/Sanitizers.def"
39 #define SANITIZER(NAME, ID) \
40 const SanitizerMask ID = 1ULL << SO_##ID;
41 #define SANITIZER_GROUP(NAME, ID, ALIAS) \
42 const SanitizerMask ID = ALIAS; \
43 const SanitizerMask ID##Group = 1ULL << SO_##ID##Group;
44 #include "clang/Basic/Sanitizers.def"
51 assert(llvm::isPowerOf2_64(K));
60 assert(llvm::isPowerOf2_64(K));
SanitizerMask Mask
Bitmask of enabled sanitizers.
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
void clear()
Disable all sanitizers.
bool empty() const
Returns true if at least one sanitizer is enabled.
void set(SanitizerMask K, bool Value)
Enable or disable a certain (single) sanitizer.
bool hasOneOf(SanitizerMask K) const
Check if one or more sanitizers are enabled.
SanitizerMask parseSanitizerValue(StringRef Value, bool AllowGroups)
Parse a single value from a -fsanitize= or -fno-sanitize= value list.
bool has(SanitizerMask K) const
Check if a certain (single) sanitizer is enabled.
SanitizerMask expandSanitizerGroups(SanitizerMask Kinds)
For each sanitizer group bit set in Kinds, set the bits for sanitizers this group enables...