[clang] 43bb68b - [Sanitizer][Ignorelist] Expanding =sanitize to mainfile. (#142472)

via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 2 14:49:02 PDT 2025


Author: Qinkun Bao
Date: 2025-06-02T17:48:59-04:00
New Revision: 43bb68b45521c5db0a18ec63b9171314bebd7ee5

URL: https://github.com/llvm/llvm-project/commit/43bb68b45521c5db0a18ec63b9171314bebd7ee5
DIFF: https://github.com/llvm/llvm-project/commit/43bb68b45521c5db0a18ec63b9171314bebd7ee5.diff

LOG: [Sanitizer][Ignorelist] Expanding =sanitize to mainfile. (#142472)

See https://github.com/llvm/llvm-project/issues/139128
If multiple entries match the source, than the latest entry takes the
precedence.

Added: 
    

Modified: 
    clang/lib/Basic/NoSanitizeList.cpp
    clang/test/CodeGen/sanitize-ignorelist-mainfile.c

Removed: 
    


################################################################################
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(


        


More information about the cfe-commits mailing list