[llvm-branch-commits] [clang] [UBSan] Support src:*=sanitize for multiple ignorelists. (PR #141640)
Vitaly Buka via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 27 20:12:59 PDT 2025
================
@@ -44,14 +44,19 @@ bool NoSanitizeList::containsFunction(SanitizerMask Mask,
bool NoSanitizeList::containsFile(SanitizerMask Mask, StringRef FileName,
StringRef Category) const {
- unsigned NoSanLine = SSCL->inSectionBlame(Mask, "src", FileName, Category);
+ auto [NoSanFileIdx, NoSanLine] =
+ SSCL->inSectionBlame(Mask, "src", FileName, Category);
if (NoSanLine == 0)
return false;
- unsigned SanLine = SSCL->inSectionBlame(Mask, "src", FileName, "sanitize");
+ auto [SanFileIdx, SanLine] =
+ SSCL->inSectionBlame(Mask, "src", FileName, "sanitize");
// If we have two cases such as `src:a.cpp=sanitize` and `src:a.cpp`, the
// current entry override the previous entry.
if (SanLine > 0)
- return NoSanLine > SanLine;
+ // std::pair uses lexicographic comparison. It will compare the file index
+ // first and then comapre the line number.
+ return std::make_pair(NoSanFileIdx, NoSanLine) >
----------------
vitalybuka wrote:
```
auto NoSan = SSCL->inSectionBlame(Mask, "src", FileName, Category);
if (NoSan == NotFound)
return false;
auto San =
SSCL->inSectionBlame(Mask, "src", FileName, "sanitize");
return San == NotFound || NoSan > San;
```
https://github.com/llvm/llvm-project/pull/141640
More information about the llvm-branch-commits
mailing list