Warning: That file was not part of the compilation database. It may have many parsing errors.
1 | //===--- SanitizerSpecialCaseList.h - SCL for sanitizers --------*- C++ -*-===// |
---|---|
2 | // |
3 | // The LLVM Compiler Infrastructure |
4 | // |
5 | // This file is distributed under the University of Illinois Open Source |
6 | // License. See LICENSE.TXT for details. |
7 | // |
8 | //===----------------------------------------------------------------------===// |
9 | // |
10 | // An extension of SpecialCaseList to allowing querying sections by |
11 | // SanitizerMask. |
12 | // |
13 | //===----------------------------------------------------------------------===// |
14 | #ifndef LLVM_CLANG_BASIC_SANITIZERSPECIALCASELIST_H |
15 | #define LLVM_CLANG_BASIC_SANITIZERSPECIALCASELIST_H |
16 | |
17 | #include "clang/Basic/LLVM.h" |
18 | #include "clang/Basic/Sanitizers.h" |
19 | #include "llvm/ADT/StringRef.h" |
20 | #include "llvm/Support/SpecialCaseList.h" |
21 | #include <memory> |
22 | |
23 | namespace clang { |
24 | |
25 | class SanitizerSpecialCaseList : public llvm::SpecialCaseList { |
26 | public: |
27 | static std::unique_ptr<SanitizerSpecialCaseList> |
28 | create(const std::vector<std::string> &Paths, std::string &Error); |
29 | |
30 | static std::unique_ptr<SanitizerSpecialCaseList> |
31 | createOrDie(const std::vector<std::string> &Paths); |
32 | |
33 | // Query blacklisted entries if any bit in Mask matches the entry's section. |
34 | bool inSection(SanitizerMask Mask, StringRef Prefix, StringRef Query, |
35 | StringRef Category = StringRef()) const; |
36 | |
37 | protected: |
38 | // Initialize SanitizerSections. |
39 | void createSanitizerSections(); |
40 | |
41 | struct SanitizerSection { |
42 | SanitizerSection(SanitizerMask SM, SectionEntries &E) |
43 | : Mask(SM), Entries(E){}; |
44 | |
45 | SanitizerMask Mask; |
46 | SectionEntries &Entries; |
47 | }; |
48 | |
49 | std::vector<SanitizerSection> SanitizerSections; |
50 | }; |
51 | |
52 | } // end namespace clang |
53 | |
54 | #endif |
55 |
Warning: That file was not part of the compilation database. It may have many parsing errors.