llvm-project/clang/lib/Basic
Vlad Tsyrklevich 2eccdab308 Allow specifying sanitizers in blacklists
Summary:
This is the follow-up patch to D37924.

This change refactors clang to use the the newly added section headers
in SpecialCaseList to specify which sanitizers blacklists entries
should apply to, like so:

  [cfi-vcall]
  fun:*bad_vcall*
  [cfi-derived-cast|cfi-unrelated-cast]
  fun:*bad_cast*

The SanitizerSpecialCaseList class has been added to allow querying by
SanitizerMask, and SanitizerBlacklist and its downstream users have been
updated to provide that information. Old blacklists not using sections
will continue to function identically since the blacklist entries will
be placed into a '[*]' section by default matching against all
sanitizers.

Reviewers: pcc, kcc, eugenis, vsk

Reviewed By: eugenis

Subscribers: dberris, cfe-commits, mgorny

Differential Revision: https://reviews.llvm.org/D37925

llvm-svn: 314171
2017-09-25 22:11:12 +00:00
..
Targets [Clang] Adding missing feature to goldmont 2017-09-25 13:49:32 +00:00
Attributes.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
Builtins.cpp [OpenCL] Add half load and store builtins 2017-09-07 19:39:10 +00:00
CMakeLists.txt Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
CharInfo.cpp
Cuda.cpp [CUDA] Added rudimentary support for CUDA-9 and sm_70. 2017-09-07 18:14:32 +00:00
Diagnostic.cpp [Basic] Add a DiagnosticError llvm::ErrorInfo subclass 2017-08-25 15:48:00 +00:00
DiagnosticIDs.cpp Add Cross Translation Unit support library 2017-09-22 11:11:01 +00:00
DiagnosticOptions.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
FileManager.cpp Use VFS operations in FileManager::makeAbsolutePath. 2017-08-02 07:25:24 +00:00
FileSystemStatCache.cpp [VFS] Replace TimeValue usage with std::chrono 2016-11-09 10:52:22 +00:00
IdentifierTable.cpp [c++2a] Treat 'concept' and 'requires' as keywords, add compat warning for C++17 and before. 2017-08-13 21:32:33 +00:00
LangOptions.cpp [Modules] Handle sanitizer feature mismatches when importing modules 2017-06-01 20:01:01 +00:00
MemoryBufferCache.cpp Reapply "Modules: Cache PCMs in memory and avoid a use-after-free" 2017-03-20 17:58:26 +00:00
Module.cpp [Module map] Introduce a private module re-export directive. 2017-09-14 23:38:44 +00:00
ObjCRuntime.cpp Watch and TV OS: wire up basic ABI choices 2015-10-30 16:30:36 +00:00
OpenMPKinds.cpp [OPENMP] Initial support for 'in_reduction' clause. 2017-07-21 18:48:21 +00:00
OperatorPrecedence.cpp [OpenCL] Adding reserved operator logical xor for OpenCL 2016-02-03 15:17:14 +00:00
SanitizerBlacklist.cpp Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
SanitizerSpecialCaseList.cpp Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
Sanitizers.cpp Pull trivial SanitizerSet methods into the header. 2015-07-14 15:34:19 +00:00
SourceLocation.cpp Revert "Revert "[NFC] Refactor DiagnosticRenderer to use FullSourceLoc"" 2017-06-27 09:50:38 +00:00
SourceManager.cpp Fix ownership of the MemoryBuffer in a FrontendInputFile. 2017-09-09 01:14:04 +00:00
TargetInfo.cpp [OpenCL] Allow targets to select address space per type 2017-08-15 09:38:18 +00:00
Targets.cpp [Atomic][X8664] set max atomic inline width according to the target 2017-09-22 16:30:00 +00:00
Targets.h [Targets] Move addCygMingDefines into the arch-independent Targets.cpp (NFC) 2017-07-31 18:17:38 +00:00
TokenKinds.cpp
Version.cpp
VersionTuple.cpp
VirtualFileSystem.cpp [vfs] Assert that the status is known in equivalent(). 2017-07-20 11:57:02 +00:00
Warnings.cpp
XRayLists.cpp Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00