@@ -314,6 +314,42 @@ TEST_F(SuppressionMappingTest, LongestMatchWins) {
314
314
locForFile (" clang/lib/Sema/foo.h" )));
315
315
}
316
316
317
+ TEST_F (SuppressionMappingTest, LongShortMatch) {
318
+ llvm::StringLiteral SuppressionMappingFile = R"(
319
+ [unused]
320
+ src:*test/*
321
+ src:*lld/*=emit)" ;
322
+ Diags.getDiagnosticOptions ().DiagnosticSuppressionMappingsFile = " foo.txt" ;
323
+ FS->addFile (" foo.txt" , /* ModificationTime=*/ {},
324
+ llvm::MemoryBuffer::getMemBuffer (SuppressionMappingFile));
325
+ clang::ProcessWarningOptions (Diags, Diags.getDiagnosticOptions (), *FS);
326
+ EXPECT_THAT (diags (), IsEmpty ());
327
+
328
+ EXPECT_TRUE (Diags.isSuppressedViaMapping (diag::warn_unused_function,
329
+ locForFile (" test/t1.cpp" )));
330
+
331
+ // FIXME: This is confusing.
332
+ EXPECT_TRUE (Diags.isSuppressedViaMapping (diag::warn_unused_function,
333
+ locForFile (" lld/test/t2.cpp" )));
334
+ }
335
+
336
+ TEST_F (SuppressionMappingTest, ShortLongMatch) {
337
+ llvm::StringLiteral SuppressionMappingFile = R"(
338
+ [unused]
339
+ src:*lld/*=emit
340
+ src:*test/*)" ;
341
+ Diags.getDiagnosticOptions ().DiagnosticSuppressionMappingsFile = " foo.txt" ;
342
+ FS->addFile (" foo.txt" , /* ModificationTime=*/ {},
343
+ llvm::MemoryBuffer::getMemBuffer (SuppressionMappingFile));
344
+ clang::ProcessWarningOptions (Diags, Diags.getDiagnosticOptions (), *FS);
345
+ EXPECT_THAT (diags (), IsEmpty ());
346
+
347
+ EXPECT_TRUE (Diags.isSuppressedViaMapping (diag::warn_unused_function,
348
+ locForFile (" test/t1.cpp" )));
349
+ EXPECT_TRUE (Diags.isSuppressedViaMapping (diag::warn_unused_function,
350
+ locForFile (" lld/test/t2.cpp" )));
351
+ }
352
+
317
353
TEST_F (SuppressionMappingTest, IsIgnored) {
318
354
llvm::StringLiteral SuppressionMappingFile = R"(
319
355
[unused]
0 commit comments