[llvm-branch-commits] [clang] [UBSan] Support src:*=sanitize for multiple ignorelists. (PR #141640)

Qinkun Bao via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue May 27 11:22:22 PDT 2025


https://github.com/qinkunbao updated https://github.com/llvm/llvm-project/pull/141640

>From cddba024f55d52e30d9c74369b3707b5fce64a20 Mon Sep 17 00:00:00 2001
From: Qinkun Bao <qinkun at google.com>
Date: Tue, 27 May 2025 17:34:51 +0000
Subject: [PATCH 1/2] Add some comments.

Created using spr 1.3.6
---
 clang/lib/Basic/NoSanitizeList.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/clang/lib/Basic/NoSanitizeList.cpp b/clang/lib/Basic/NoSanitizeList.cpp
index c58a67971dfb6..549bbda55e459 100644
--- a/clang/lib/Basic/NoSanitizeList.cpp
+++ b/clang/lib/Basic/NoSanitizeList.cpp
@@ -53,6 +53,8 @@ bool NoSanitizeList::containsFile(SanitizerMask Mask, StringRef FileName,
   // 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)
+    // std::pair uses lexicographic comparison. It will compare the file index
+    // first and then comapre the line number.
     return std::make_pair(NoSanFileIdx, NoSanLine) >
            std::make_pair(SanFileIdx, SanLine);
   return true;

>From 468bc103fa1a88329d2502356411de1fcf6f306e Mon Sep 17 00:00:00 2001
From: Qinkun Bao <qinkun at google.com>
Date: Tue, 27 May 2025 18:22:14 +0000
Subject: [PATCH 2/2] Update tests.

Created using spr 1.3.6
---
 clang/test/CodeGen/ubsan-src-ignorelist-category.test | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/test/CodeGen/ubsan-src-ignorelist-category.test b/clang/test/CodeGen/ubsan-src-ignorelist-category.test
index 0ff2ea5c456a1..96a4abb1d1020 100644
--- a/clang/test/CodeGen/ubsan-src-ignorelist-category.test
+++ b/clang/test/CodeGen/ubsan-src-ignorelist-category.test
@@ -12,8 +12,8 @@
 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict6 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,SANITIZE
 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict7 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,IGNORE
 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict8 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,SANITIZE
-// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict8 -fsanitize-ignorelist=%t/src.ignorelist.contradict9 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,IGNORE
-// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict9 -fsanitize-ignorelist=%t/src.ignorelist.contradict8 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,SANITIZE
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist -fsanitize-ignorelist=%t/src.ignorelist.contradict9 -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,IGNORE
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsanitize=signed-integer-overflow -fsanitize-ignorelist=%t/src.ignorelist.contradict9 -fsanitize-ignorelist=%t/src.ignorelist -emit-llvm %t/test1.c -o - | FileCheck %s --check-prefixes=CHECK1,SANITIZE
 
 
 // Verify ubsan only emits checks for files in the allowlist



More information about the llvm-branch-commits mailing list