[llvm] [FileCheck] Inline destructor to avoid missing symbol with hidden visibility (PR #225978)

Tom Stellard via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 29 14:48:25 PDT 2026


https://github.com/tstellar updated https://github.com/llvm/llvm-project/pull/225978

>From a1f1b09fb3bf37f752c94dd52e47dadee05882b2 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 23 Sep 2026 23:46:41 +0000
Subject: [PATCH 1/5] [FileCheck] Add missing export to symbol used in test

---
 llvm/lib/FileCheck/FileCheck.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp
index 9889f5d68a52f..f01f714268d1c 100644
--- a/llvm/lib/FileCheck/FileCheck.cpp
+++ b/llvm/lib/FileCheck/FileCheck.cpp
@@ -1525,7 +1525,7 @@ StringRef FileCheck::CanonicalizeFile(MemoryBuffer &MB,
 
 FileCheckDiag::~FileCheckDiag() {}
 MatchResultDiag::~MatchResultDiag() {}
-MatchNoteDiag::~MatchNoteDiag() {}
+LLVM_ABI_FOR_TEST MatchNoteDiag::~MatchNoteDiag() {}
 
 static bool IsPartOfWord(char c) {
   return (isAlnum(c) || c == '-' || c == '_');

>From e431a9362290a70d72c362706c5c2907703a870b Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 24 Sep 2026 22:12:21 +0000
Subject: [PATCH 2/5] Fix

---
 llvm/include/llvm/FileCheck/FileCheck.h | 2 ++
 llvm/lib/FileCheck/FileCheck.cpp        | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/llvm/include/llvm/FileCheck/FileCheck.h b/llvm/include/llvm/FileCheck/FileCheck.h
index 61486567c403b..f09c5d82253ca 100644
--- a/llvm/include/llvm/FileCheck/FileCheck.h
+++ b/llvm/include/llvm/FileCheck/FileCheck.h
@@ -322,6 +322,8 @@ class MatchNoteDiag : public FileCheckDiag {
   }
 };
 
+inline MatchNoteDiag::~MatchNoteDiag() {}
+
 /// \c MatchNoteDiag for a fuzzy match that serves as a suggestion for the next
 /// intended match for an expected pattern with too few or no good matches.
 class MatchFuzzyDiag : public MatchNoteDiag {
diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp
index f01f714268d1c..22198d2b68451 100644
--- a/llvm/lib/FileCheck/FileCheck.cpp
+++ b/llvm/lib/FileCheck/FileCheck.cpp
@@ -1525,7 +1525,6 @@ StringRef FileCheck::CanonicalizeFile(MemoryBuffer &MB,
 
 FileCheckDiag::~FileCheckDiag() {}
 MatchResultDiag::~MatchResultDiag() {}
-LLVM_ABI_FOR_TEST MatchNoteDiag::~MatchNoteDiag() {}
 
 static bool IsPartOfWord(char c) {
   return (isAlnum(c) || c == '-' || c == '_');

>From 021ca4d2863d568fbd287d6cb8de16a5650c4a55 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 24 Sep 2026 22:20:59 +0000
Subject: [PATCH 3/5] Revert "Fix"

This reverts commit e431a9362290a70d72c362706c5c2907703a870b.
---
 llvm/include/llvm/FileCheck/FileCheck.h | 2 --
 llvm/lib/FileCheck/FileCheck.cpp        | 1 +
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/llvm/include/llvm/FileCheck/FileCheck.h b/llvm/include/llvm/FileCheck/FileCheck.h
index f09c5d82253ca..61486567c403b 100644
--- a/llvm/include/llvm/FileCheck/FileCheck.h
+++ b/llvm/include/llvm/FileCheck/FileCheck.h
@@ -322,8 +322,6 @@ class MatchNoteDiag : public FileCheckDiag {
   }
 };
 
-inline MatchNoteDiag::~MatchNoteDiag() {}
-
 /// \c MatchNoteDiag for a fuzzy match that serves as a suggestion for the next
 /// intended match for an expected pattern with too few or no good matches.
 class MatchFuzzyDiag : public MatchNoteDiag {
diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp
index 22198d2b68451..f01f714268d1c 100644
--- a/llvm/lib/FileCheck/FileCheck.cpp
+++ b/llvm/lib/FileCheck/FileCheck.cpp
@@ -1525,6 +1525,7 @@ StringRef FileCheck::CanonicalizeFile(MemoryBuffer &MB,
 
 FileCheckDiag::~FileCheckDiag() {}
 MatchResultDiag::~MatchResultDiag() {}
+LLVM_ABI_FOR_TEST MatchNoteDiag::~MatchNoteDiag() {}
 
 static bool IsPartOfWord(char c) {
   return (isAlnum(c) || c == '-' || c == '_');

>From 81a7257700a71999acdf0c1746c0809e27b9e066 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 24 Sep 2026 22:12:21 +0000
Subject: [PATCH 4/5] Fix

---
 llvm/include/llvm/FileCheck/FileCheck.h | 2 ++
 llvm/lib/FileCheck/FileCheck.cpp        | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/llvm/include/llvm/FileCheck/FileCheck.h b/llvm/include/llvm/FileCheck/FileCheck.h
index 61486567c403b..f09c5d82253ca 100644
--- a/llvm/include/llvm/FileCheck/FileCheck.h
+++ b/llvm/include/llvm/FileCheck/FileCheck.h
@@ -322,6 +322,8 @@ class MatchNoteDiag : public FileCheckDiag {
   }
 };
 
+inline MatchNoteDiag::~MatchNoteDiag() {}
+
 /// \c MatchNoteDiag for a fuzzy match that serves as a suggestion for the next
 /// intended match for an expected pattern with too few or no good matches.
 class MatchFuzzyDiag : public MatchNoteDiag {
diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp
index f01f714268d1c..22198d2b68451 100644
--- a/llvm/lib/FileCheck/FileCheck.cpp
+++ b/llvm/lib/FileCheck/FileCheck.cpp
@@ -1525,7 +1525,6 @@ StringRef FileCheck::CanonicalizeFile(MemoryBuffer &MB,
 
 FileCheckDiag::~FileCheckDiag() {}
 MatchResultDiag::~MatchResultDiag() {}
-LLVM_ABI_FOR_TEST MatchNoteDiag::~MatchNoteDiag() {}
 
 static bool IsPartOfWord(char c) {
   return (isAlnum(c) || c == '-' || c == '_');

>From 1a7453188a8ba930e3f936a46f956df1f04b5ad8 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Tue, 29 Sep 2026 21:42:34 +0000
Subject: [PATCH 5/5] Move more destructors

---
 llvm/include/llvm/FileCheck/FileCheck.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/llvm/include/llvm/FileCheck/FileCheck.h b/llvm/include/llvm/FileCheck/FileCheck.h
index f09c5d82253ca..730b5f8b6846f 100644
--- a/llvm/include/llvm/FileCheck/FileCheck.h
+++ b/llvm/include/llvm/FileCheck/FileCheck.h
@@ -322,6 +322,8 @@ class MatchNoteDiag : public FileCheckDiag {
   }
 };
 
+inline FileCheckDiag::~FileCheckDiag() {}
+inline MatchResultDiag::~MatchResultDiag() {}
 inline MatchNoteDiag::~MatchNoteDiag() {}
 
 /// \c MatchNoteDiag for a fuzzy match that serves as a suggestion for the next



More information about the llvm-commits mailing list