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
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to