================ @@ -2518,6 +2518,59 @@ StringRef CGDebugInfo::getVTableName(const CXXRecordDecl *RD) { return internString("_vptr$", RD->getNameAsString()); } +// Emit symbol for the debugger that points to the vtable address for +// the given class. The symbol is named as '_vtable$'. +// The debugger does not need to know any details about the contents of the +// vtable as it can work this out using its knowledge of the ABI and the +// existing information in the DWARF. The type is assumed to be 'void *'. +void CGDebugInfo::emitVTableSymbol(llvm::GlobalVariable *VTable, + const CXXRecordDecl *RD) { + ASTContext &Context = CGM.getContext(); + SmallString<64> Buffer; + Twine SymbolName = internString("_vtable$"); + StringRef SymbolNameRef = SymbolName.toStringRef(Buffer); ---------------- Michael137 wrote:
Don't think we need the call to `internString` here? AFAIU it's just used when we require the copy of a string and don't want to heap allocate? https://github.com/llvm/llvm-project/pull/130255 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits