[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