14 #include "llvm/ADT/Hashing.h" 15 #include "llvm/ADT/StringSwitch.h" 17 using namespace clang;
21 #define SANITIZER(NAME, ID) constexpr SanitizerMask SanitizerKind::ID; 22 #define SANITIZER_GROUP(NAME, ID, ALIAS) \ 23 constexpr SanitizerMask SanitizerKind::ID; \ 24 constexpr SanitizerMask SanitizerKind::ID##Group; 25 #include "clang/Basic/Sanitizers.def" 30 #define SANITIZER_GROUP(NAME, ID, ALIAS) \ 31 .Case(NAME, AllowGroups ? SanitizerKind::ID##Group : SanitizerMask()) 32 #include "clang/Basic/Sanitizers.def" 38 #define SANITIZER(NAME, ID) 39 #define SANITIZER_GROUP(NAME, ID, ALIAS) \ 40 if (Kinds & SanitizerKind::ID##Group) \ 41 Kinds |= SanitizerKind::ID; 42 #include "clang/Basic/Sanitizers.def" 47 return llvm::hash_combine_range(&maskLoToHigh[0], &maskLoToHigh[kNumElem]);
Defines the clang::SanitizerKind enum.
llvm::hash_code hash_value() const
#define SANITIZER(NAME, ID)
Dataflow Directional Tag Classes.
SanitizerMask parseSanitizerValue(StringRef Value, bool AllowGroups)
Parse a single value from a -fsanitize= or -fno-sanitize= value list.
SanitizerMask expandSanitizerGroups(SanitizerMask Kinds)
For each sanitizer group bit set in Kinds, set the bits for sanitizers this group enables...