Clang Project

clang_source_code/include/clang/Basic/SanitizerBlacklist.h
1//===--- SanitizerBlacklist.h - Blacklist for sanitizers --------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// User-provided blacklist used to disable/alter instrumentation done in
10// sanitizers.
11//
12//===----------------------------------------------------------------------===//
13#ifndef LLVM_CLANG_BASIC_SANITIZERBLACKLIST_H
14#define LLVM_CLANG_BASIC_SANITIZERBLACKLIST_H
15
16#include "clang/Basic/LLVM.h"
17#include "clang/Basic/SanitizerSpecialCaseList.h"
18#include "clang/Basic/Sanitizers.h"
19#include "clang/Basic/SourceLocation.h"
20#include "clang/Basic/SourceManager.h"
21#include "llvm/ADT/StringRef.h"
22#include <memory>
23
24namespace clang {
25
26class SanitizerBlacklist {
27  std::unique_ptr<SanitizerSpecialCaseListSSCL;
28  SourceManager &SM;
29
30public:
31  SanitizerBlacklist(const std::vector<std::string> &BlacklistPaths,
32                     SourceManager &SM);
33  bool isBlacklistedGlobal(SanitizerMask MaskStringRef GlobalName,
34                           StringRef Category = StringRef()) const;
35  bool isBlacklistedType(SanitizerMask MaskStringRef MangledTypeName,
36                         StringRef Category = StringRef()) const;
37  bool isBlacklistedFunction(SanitizerMask MaskStringRef FunctionNameconst;
38  bool isBlacklistedFile(SanitizerMask MaskStringRef FileName,
39                         StringRef Category = StringRef()) const;
40  bool isBlacklistedLocation(SanitizerMask MaskSourceLocation Loc,
41                             StringRef Category = StringRef()) const;
42};
43
44}  // end namespace clang
45
46#endif
47
clang::SanitizerBlacklist::SSCL
clang::SanitizerBlacklist::SM
clang::SanitizerBlacklist::isBlacklistedGlobal
clang::SanitizerBlacklist::isBlacklistedType
clang::SanitizerBlacklist::isBlacklistedFunction
clang::SanitizerBlacklist::isBlacklistedFile
clang::SanitizerBlacklist::isBlacklistedLocation