[clang] [CIR] Handle TSK_FriendDeclaration in vtable linkage (PR #201084)

Akimasa Watanuki via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 2 03:16:08 PDT 2026


https://github.com/Men-cotton created https://github.com/llvm/llvm-project/pull/201084

Mirror the TemplateSpecializationKind handling added by #199528.

>From 4f2f41e37a0295600e3db33cb6298f83794fa3f8 Mon Sep 17 00:00:00 2001
From: mencotton <mencotton0410 at gmail.com>
Date: Tue, 2 Jun 2026 19:06:33 +0900
Subject: [PATCH] [CIR] Handle TSK_FriendDeclaration in vtable linkage

Mirror the TemplateSpecializationKind handling added by #199528.
---
 clang/lib/CIR/CodeGen/CIRGenVTables.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/clang/lib/CIR/CodeGen/CIRGenVTables.cpp b/clang/lib/CIR/CodeGen/CIRGenVTables.cpp
index 03d777cf7363a..cc2a1cfea8889 100644
--- a/clang/lib/CIR/CodeGen/CIRGenVTables.cpp
+++ b/clang/lib/CIR/CodeGen/CIRGenVTables.cpp
@@ -365,6 +365,7 @@ cir::GlobalLinkageKind CIRGenModule::getVTableLinkage(const CXXRecordDecl *rd) {
                    : cir::GlobalLinkageKind::InternalLinkage;
       return cir::GlobalLinkageKind::ExternalLinkage;
 
+    case TSK_FriendDeclaration:
     case TSK_ImplicitInstantiation:
       return cir::GlobalLinkageKind::LinkOnceODRLinkage;
 
@@ -397,6 +398,7 @@ cir::GlobalLinkageKind CIRGenModule::getVTableLinkage(const CXXRecordDecl *rd) {
   case TSK_Undeclared:
   case TSK_ExplicitSpecialization:
   case TSK_ImplicitInstantiation:
+  case TSK_FriendDeclaration:
     return discardableODRLinkage;
 
   case TSK_ExplicitInstantiationDeclaration:



More information about the cfe-commits mailing list