From b280b31ddbbd8140d15d45f2e06506386e72cdb4 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Mon, 6 Oct 2025 16:11:08 -0700 Subject: [PATCH 1/3] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?UTF-8?q?itial=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Created using spr 1.3.6 --- clang/unittests/Basic/DiagnosticTest.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/clang/unittests/Basic/DiagnosticTest.cpp b/clang/unittests/Basic/DiagnosticTest.cpp index 4b3af00c3b0ce..bf0d68ba3b41e 100644 --- a/clang/unittests/Basic/DiagnosticTest.cpp +++ b/clang/unittests/Basic/DiagnosticTest.cpp @@ -314,6 +314,25 @@ TEST_F(SuppressionMappingTest, LongestMatchWins) { locForFile("clang/lib/Sema/foo.h"))); } +TEST_F(SuppressionMappingTest, LongShortMatch) { + llvm::StringLiteral SuppressionMappingFile = R"( + [unused] + src:*test/* + src:*lld/*=emit)"; + Diags.getDiagnosticOptions().DiagnosticSuppressionMappingsFile = "foo.txt"; + FS->addFile("foo.txt", /*ModificationTime=*/{}, + llvm::MemoryBuffer::getMemBuffer(SuppressionMappingFile)); + clang::ProcessWarningOptions(Diags, Diags.getDiagnosticOptions(), *FS); + EXPECT_THAT(diags(), IsEmpty()); + + EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function, + locForFile("test/my_test1.cpp"))); + + // FIXME: This is confusing. + EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function, + locForFile("lld/test/my_test2.cpp"))); +} + TEST_F(SuppressionMappingTest, IsIgnored) { llvm::StringLiteral SuppressionMappingFile = R"( [unused] From 99b8ef7b658a82975e43ddaa90c2bde486864d6b Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Mon, 6 Oct 2025 16:16:25 -0700 Subject: [PATCH 2/3] Update file paths in DiagnosticTest.cpp --- clang/unittests/Basic/DiagnosticTest.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/unittests/Basic/DiagnosticTest.cpp b/clang/unittests/Basic/DiagnosticTest.cpp index bf0d68ba3b41e..5a34d947b7a68 100644 --- a/clang/unittests/Basic/DiagnosticTest.cpp +++ b/clang/unittests/Basic/DiagnosticTest.cpp @@ -326,11 +326,11 @@ TEST_F(SuppressionMappingTest, LongShortMatch) { EXPECT_THAT(diags(), IsEmpty()); EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function, - locForFile("test/my_test1.cpp"))); + locForFile("test/t1.cpp"))); // FIXME: This is confusing. EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function, - locForFile("lld/test/my_test2.cpp"))); + locForFile("lld/test/t2.cpp"))); } TEST_F(SuppressionMappingTest, IsIgnored) { From 216a4f6fb2a7b24dcb0c7a28ba6d43489ac53cea Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Mon, 6 Oct 2025 16:43:28 -0700 Subject: [PATCH 3/3] another test Created using spr 1.3.6 --- clang/unittests/Basic/DiagnosticTest.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/clang/unittests/Basic/DiagnosticTest.cpp b/clang/unittests/Basic/DiagnosticTest.cpp index 5a34d947b7a68..de090864e5095 100644 --- a/clang/unittests/Basic/DiagnosticTest.cpp +++ b/clang/unittests/Basic/DiagnosticTest.cpp @@ -333,6 +333,23 @@ TEST_F(SuppressionMappingTest, LongShortMatch) { locForFile("lld/test/t2.cpp"))); } +TEST_F(SuppressionMappingTest, ShortLongMatch) { + llvm::StringLiteral SuppressionMappingFile = R"( + [unused] + src:*lld/*=emit + src:*test/*)"; + Diags.getDiagnosticOptions().DiagnosticSuppressionMappingsFile = "foo.txt"; + FS->addFile("foo.txt", /*ModificationTime=*/{}, + llvm::MemoryBuffer::getMemBuffer(SuppressionMappingFile)); + clang::ProcessWarningOptions(Diags, Diags.getDiagnosticOptions(), *FS); + EXPECT_THAT(diags(), IsEmpty()); + + EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function, + locForFile("test/t1.cpp"))); + EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function, + locForFile("lld/test/t2.cpp"))); +} + TEST_F(SuppressionMappingTest, IsIgnored) { llvm::StringLiteral SuppressionMappingFile = R"( [unused]