[llvm-branch-commits] [Sanitizer][Ignorelist] Expanding =sanitize to mainfile. (PR #142472)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jun 2 13:03:49 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Qinkun Bao (qinkunbao)
<details>
<summary>Changes</summary>
See https://github.com/llvm/llvm-project/issues/139128
If multiple entries match the source, than the latest entry takes the
precedence.
---
Full diff: https://github.com/llvm/llvm-project/pull/142472.diff
2 Files Affected:
- (modified) clang/lib/Basic/NoSanitizeList.cpp (+1-1)
- (modified) clang/test/CodeGen/sanitize-ignorelist-mainfile.c (+16-5)
``````````diff
diff --git a/clang/lib/Basic/NoSanitizeList.cpp b/clang/lib/Basic/NoSanitizeList.cpp
index 24d2276f50ddf..96f79fb2a2a29 100644
--- a/clang/lib/Basic/NoSanitizeList.cpp
+++ b/clang/lib/Basic/NoSanitizeList.cpp
@@ -64,7 +64,7 @@ bool NoSanitizeList::containsFile(SanitizerMask Mask, StringRef FileName,
bool NoSanitizeList::containsMainFile(SanitizerMask Mask, StringRef FileName,
StringRef Category) const {
- return SSCL->inSection(Mask, "mainfile", FileName, Category);
+ return containsPrefix(Mask, "mainfile", FileName, Category);
}
bool NoSanitizeList::containsLocation(SanitizerMask Mask, SourceLocation Loc,
diff --git a/clang/test/CodeGen/sanitize-ignorelist-mainfile.c b/clang/test/CodeGen/sanitize-ignorelist-mainfile.c
index 419e0417c1d82..599ff8e597c98 100644
--- a/clang/test/CodeGen/sanitize-ignorelist-mainfile.c
+++ b/clang/test/CodeGen/sanitize-ignorelist-mainfile.c
@@ -1,8 +1,10 @@
/// Test mainfile in a sanitizer special case list.
// RUN: rm -rf %t && split-file %s %t
-// RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment %t/a.c -o - | FileCheck %s --check-prefixes=CHECK,DEFAULT
+// RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment %t/a.c -o - | FileCheck %s --check-prefixes=CHECK,SANITIZE
// RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=%t/a.list %t/a.c -o - | FileCheck %s --check-prefixes=CHECK,IGNORE
// RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=%t/b.list %t/a.c -o - | FileCheck %s --check-prefixes=CHECK,IGNORE
+// RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=%t/c.list %t/a.c -o - | FileCheck %s --check-prefixes=CHECK,SANITIZE
+// RUN: %clang_cc1 -emit-llvm -triple x86_64 -fsanitize=address,alignment -fsanitize-ignorelist=%t/d.list %t/a.c -o - | FileCheck %s --check-prefixes=CHECK,IGNORE
//--- a.list
mainfile:*a.c
@@ -14,6 +16,15 @@ mainfile:*a.c
[alignment]
mainfile:*.c
+//--- c.list
+mainfile:*a.c
+mainfile:*a.c=sanitize
+
+//--- d.list
+mainfile:*a.c
+mainfile:*a.c=sanitize
+mainfile:*a.c
+
//--- a.h
int global_h;
@@ -30,12 +41,12 @@ int foo(void *x) {
return load(x);
}
-// DEFAULT: @___asan_gen_{{.*}} = {{.*}} c"global_h\00"
-// DEFAULT: @___asan_gen_{{.*}} = {{.*}} c"global_c\00"
+// SANITIZE: @___asan_gen_{{.*}} = {{.*}} c"global_h\00"
+// SANITIZE: @___asan_gen_{{.*}} = {{.*}} c"global_c\00"
// IGNORE-NOT: @___asan_gen_
// CHECK-LABEL: define {{.*}}@load(
-// DEFAULT: call void @__ubsan_handle_type_mismatch_v1_abort(
-// DEFAULT: call void @__asan_report_load4(
+// SANITIZE: call void @__ubsan_handle_type_mismatch_v1_abort(
+// SANITIZE: call void @__asan_report_load4(
// IGNORE-NOT: call void @__ubsan_handle_type_mismatch_v1_abort(
// IGNORE-NOT: call void @__asan_report_load4(
``````````
</details>
https://github.com/llvm/llvm-project/pull/142472
More information about the llvm-branch-commits
mailing list