[clang] [llvm] [UBSan] Implement src:*=sanitize for UBSan (PR #140529)
Qinkun Bao via cfe-commits
cfe-commits at lists.llvm.org
Wed May 21 11:19:41 PDT 2025
================
@@ -63,6 +63,11 @@ Error SpecialCaseList::Matcher::insert(StringRef Pattern, unsigned LineNumber,
.moveInto(Pair.first))
return Err;
Pair.second = LineNumber;
+ } else {
----------------
qinkunbao wrote:
I believe the change inside `SpecialCaseList::Matcher::insert` is needed.
Consider the following example,
```
1 src:*
2 src:*/test1.c
3 src:*/test1.c=sanitize
4 src:*/test1.c
```
`src:*/test1.c` at line 2 and `src:*/test1.c` at line 4 shares the same Section, Prefix and Query and Catogory. As a result, when the previous implementation will skip updating the lineNo. Without the change, we can not know the correct line number even if we do a reverse order iteration. (I tested it by removing the change inside `SpecialCaseList::Matcher::insert` and walking Globs/Regex in reverse order. The test will fail for src.ignorelist.contradict4
> Also we need a patch to Matcher::Globs -> vector
Will change it in a new PR.
https://github.com/llvm/llvm-project/pull/140529
More information about the cfe-commits
mailing list