[clang] [CIR] Add support for emitting VTTs and related ojects (PR #155721)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 1 19:55:38 PDT 2025
================
@@ -226,6 +289,109 @@ cir::GlobalLinkageKind CIRGenModule::getVTableLinkage(const CXXRecordDecl *rd) {
return cir::GlobalLinkageKind::ExternalLinkage;
}
+cir::GlobalOp CIRGenVTables::getAddrOfVTT(const CXXRecordDecl *rd) {
+ assert(rd->getNumVBases() && "Only classes with virtual bases need a VTT");
+
+ SmallString<256> outName;
+ llvm::raw_svector_ostream out(outName);
+ cast<ItaniumMangleContext>(cgm.getCXXABI().getMangleContext())
+ .mangleCXXVTT(rd, out);
+ StringRef name = outName.str();
+
+ // This will also defer the definition of the VTT.
+ (void)cgm.getCXXABI().getAddrOfVTable(rd, CharUnits());
----------------
Andres-Salamanca wrote:
What do you think of using `[[maybe_unused]]` here?
https://github.com/llvm/llvm-project/pull/155721
More information about the cfe-commits
mailing list