summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGDebugInfo.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-01-28 21:41:35 +0000
committerDevang Patel <dpatel@apple.com>2010-01-28 21:41:35 +0000
commit946edc1aa6d9b48a91cfbd7fe8f68d324e83308e (patch)
tree57a08fd009437a5f50633b2d3758235c5181ad75 /clang/lib/CodeGen/CGDebugInfo.cpp
parentb1ef991097c1276fae00d19367da78d0b58ddf9a (diff)
downloadbcm5719-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.cpp6
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);
OpenPOWER on IntegriCloud