diff options
author | Devang Patel <dpatel@apple.com> | 2010-01-28 21:41:35 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-01-28 21:41:35 +0000 |
commit | 946edc1aa6d9b48a91cfbd7fe8f68d324e83308e (patch) | |
tree | 57a08fd009437a5f50633b2d3758235c5181ad75 /clang/lib/CodeGen/CGDebugInfo.cpp | |
parent | b1ef991097c1276fae00d19367da78d0b58ddf9a (diff) | |
download | bcm5719-llvm-946edc1aa6d9b48a91cfbd7fe8f68d324e83308e.tar.gz bcm5719-llvm-946edc1aa6d9b48a91cfbd7fe8f68d324e83308e.zip |
Emit base classes info first, as expected by the debugger.
llvm-svn: 94755
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index 7d2b4cd7503..4a4b1a91798 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/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<llvm::DIDescriptor, 16> EltTys; const CXXRecordDecl *CXXDecl = dyn_cast<CXXRecordDecl>(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); |