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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@314171 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- docs/ControlFlowIntegrity.rst 10 additions, 2 deletionsdocs/ControlFlowIntegrity.rst
- docs/SanitizerSpecialCaseList.rst 24 additions, 8 deletionsdocs/SanitizerSpecialCaseList.rst
- include/clang/Basic/SanitizerBlacklist.h 8 additions, 7 deletionsinclude/clang/Basic/SanitizerBlacklist.h
- include/clang/Basic/SanitizerSpecialCaseList.h 54 additions, 0 deletionsinclude/clang/Basic/SanitizerSpecialCaseList.h
- lib/AST/Decl.cpp 7 additions, 5 deletionslib/AST/Decl.cpp
- lib/Basic/CMakeLists.txt 1 addition, 0 deletionslib/Basic/CMakeLists.txt
- lib/Basic/SanitizerBlacklist.cpp 16 additions, 11 deletionslib/Basic/SanitizerBlacklist.cpp
- lib/Basic/SanitizerSpecialCaseList.cpp 64 additions, 0 deletionslib/Basic/SanitizerSpecialCaseList.cpp
- lib/Basic/XRayLists.cpp 9 additions, 5 deletionslib/Basic/XRayLists.cpp
- lib/CodeGen/CGClass.cpp 13 additions, 24 deletionslib/CodeGen/CGClass.cpp
- lib/CodeGen/CGDeclCXX.cpp 19 additions, 11 deletionslib/CodeGen/CGDeclCXX.cpp
- lib/CodeGen/CGExpr.cpp 1 addition, 1 deletionlib/CodeGen/CGExpr.cpp
- lib/CodeGen/CodeGenFunction.cpp 13 additions, 2 deletionslib/CodeGen/CodeGenFunction.cpp
- lib/CodeGen/CodeGenModule.cpp 11 additions, 9 deletionslib/CodeGen/CodeGenModule.cpp
- lib/CodeGen/CodeGenModule.h 2 additions, 1 deletionlib/CodeGen/CodeGenModule.h
- test/CodeGen/Inputs/sanitizer-special-case-list.sanitized.txt 4 additions, 0 deletions.../CodeGen/Inputs/sanitizer-special-case-list.sanitized.txt
- test/CodeGen/Inputs/sanitizer-special-case-list.unsanitized1.txt 2 additions, 0 deletions...deGen/Inputs/sanitizer-special-case-list.unsanitized1.txt
- test/CodeGen/Inputs/sanitizer-special-case-list.unsanitized2.txt 4 additions, 0 deletions...deGen/Inputs/sanitizer-special-case-list.unsanitized2.txt
- test/CodeGen/Inputs/sanitizer-special-case-list.unsanitized3.txt 4 additions, 0 deletions...deGen/Inputs/sanitizer-special-case-list.unsanitized3.txt
- test/CodeGen/Inputs/sanitizer-special-case-list.unsanitized4.txt 4 additions, 0 deletions...deGen/Inputs/sanitizer-special-case-list.unsanitized4.txt
Loading
Please register or sign in to comment