From 3064afebf823e3909d19b9cea5c1ddadb1d12b0e Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Thu, 28 Jan 2010 21:41:35 +0000 Subject: [PATCH] Emit base classes info first, as expected by the debugger. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94755 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGDebugInfo.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 7d2b4cd750..4a4b1a9179 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -525,7 +525,6 @@ llvm::DIType CGDebugInfo::getOrCreateMethodType(const CXXMethodDecl *Method, llvm::DICompileUnit Unit) { llvm::DIType FnTy = getOrCreateType(Method->getType(), Unit); - // Add "this" pointer. llvm::DIArray Args = llvm::DICompositeType(FnTy.getNode()).getTypeArray(); @@ -804,13 +803,14 @@ llvm::DIType CGDebugInfo::CreateType(const RecordType *Ty, llvm::SmallVector EltTys; const CXXRecordDecl *CXXDecl = dyn_cast(Decl); - if (CXXDecl) + if (CXXDecl) { + CollectCXXBases(CXXDecl, Unit, EltTys, FwdDecl); CollectVtableInfo(CXXDecl, Unit, EltTys); + } CollectRecordFields(Decl, Unit, EltTys); llvm::MDNode *ContainingType = NULL; if (CXXDecl) { CollectCXXMemberFunctions(CXXDecl, Unit, EltTys, FwdDecl); - CollectCXXBases(CXXDecl, Unit, EltTys, FwdDecl); // A class's primary base or the class itself contains the vtable. const ASTRecordLayout &RL = CGM.getContext().getASTRecordLayout(Decl); -- 2.40.0