[llvm-branch-commits] [NoSanitizeList][NFI] Add containsPrefix to remove duplicated logics. (PR #142027)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu May 29 12:58:54 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Qinkun Bao (qinkunbao)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/142027.diff
2 Files Affected:
- (modified) clang/include/clang/Basic/NoSanitizeList.h (+2-1)
- (modified) clang/lib/Basic/NoSanitizeList.cpp (+11-10)
``````````diff
diff --git a/clang/include/clang/Basic/NoSanitizeList.h b/clang/include/clang/Basic/NoSanitizeList.h
index 43415859fcd54..4a546351bb66d 100644
--- a/clang/include/clang/Basic/NoSanitizeList.h
+++ b/clang/include/clang/Basic/NoSanitizeList.h
@@ -29,7 +29,8 @@ class SanitizerSpecialCaseList;
class NoSanitizeList {
std::unique_ptr<SanitizerSpecialCaseList> SSCL;
SourceManager &SM;
-
+ bool containsPrefix(SanitizerMask Mask,StringRef Prefix, StringRef Name,
+ StringRef Category = StringRef()) const;
public:
NoSanitizeList(const std::vector<std::string> &NoSanitizeListPaths,
SourceManager &SM);
diff --git a/clang/lib/Basic/NoSanitizeList.cpp b/clang/lib/Basic/NoSanitizeList.cpp
index 9f0f1c64995cb..671430dfe6293 100644
--- a/clang/lib/Basic/NoSanitizeList.cpp
+++ b/clang/lib/Basic/NoSanitizeList.cpp
@@ -27,6 +27,15 @@ NoSanitizeList::NoSanitizeList(const std::vector<std::string> &NoSanitizePaths,
NoSanitizeList::~NoSanitizeList() = default;
+bool NoSanitizeList::containsPrefix(SanitizerMask Mask, StringRef Prefix,
+ StringRef Name, StringRef Category) const {
+ auto NoSan = SSCL->inSectionBlame(Mask, Prefix, Name, Category);
+ if (NoSan == llvm::SpecialCaseList::NotFound)
+ return false;
+ auto San = SSCL->inSectionBlame(Mask, Prefix, Name, "sanitize");
+ return San == llvm::SpecialCaseList::NotFound || NoSan > San;
+}
+
bool NoSanitizeList::containsGlobal(SanitizerMask Mask, StringRef GlobalName,
StringRef Category) const {
return SSCL->inSection(Mask, "global", GlobalName, Category);
@@ -34,11 +43,7 @@ bool NoSanitizeList::containsGlobal(SanitizerMask Mask, StringRef GlobalName,
bool NoSanitizeList::containsType(SanitizerMask Mask, StringRef MangledTypeName,
StringRef Category) const {
- auto NoSan = SSCL->inSectionBlame(Mask, "type", MangledTypeName, Category);
- if (NoSan == llvm::SpecialCaseList::NotFound)
- return false;
- auto San = SSCL->inSectionBlame(Mask, "type", MangledTypeName, "sanitize");
- return San == llvm::SpecialCaseList::NotFound || NoSan > San;
+ return containsPrefix(Mask, "type", MangledTypeName, Category);
}
bool NoSanitizeList::containsFunction(SanitizerMask Mask,
@@ -48,11 +53,7 @@ bool NoSanitizeList::containsFunction(SanitizerMask Mask,
bool NoSanitizeList::containsFile(SanitizerMask Mask, StringRef FileName,
StringRef Category) const {
- auto NoSan = SSCL->inSectionBlame(Mask, "src", FileName, Category);
- if (NoSan == llvm::SpecialCaseList::NotFound)
- return false;
- auto San = SSCL->inSectionBlame(Mask, "src", FileName, "sanitize");
- return San == llvm::SpecialCaseList::NotFound || NoSan > San;
+ return containsPrefix(Mask, "src", FileName, Category);
}
bool NoSanitizeList::containsMainFile(SanitizerMask Mask, StringRef FileName,
``````````
</details>
https://github.com/llvm/llvm-project/pull/142027
More information about the llvm-branch-commits
mailing list