diff options
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index c3991b21d5..98aa20c8d6 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -1171,18 +1171,16 @@ llvm::DIType CGDebugInfo::CreateType(const RecordType *Ty) { // Convert all the elements. SmallVector<llvm::Value *, 16> EltTys; - const CXXRecordDecl *CXXDecl = dyn_cast<CXXRecordDecl>(RD); - if (CXXDecl) { - CollectCXXBases(CXXDecl, Unit, EltTys, FwdDecl); - CollectVTableInfo(CXXDecl, Unit, EltTys); - } - // Collect static variables with initializers. CollectRecordStaticVars(RD, FwdDecl); - CollectRecordFields(RD, Unit, EltTys, FwdDecl); + + // Collect C++ information. + const CXXRecordDecl *CXXDecl = dyn_cast<CXXRecordDecl>(RD); llvm::DIArray TParamsArray; if (CXXDecl) { + CollectCXXBases(CXXDecl, Unit, EltTys, FwdDecl); + CollectVTableInfo(CXXDecl, Unit, EltTys); CollectCXXMemberFunctions(CXXDecl, Unit, EltTys, FwdDecl); CollectCXXFriends(CXXDecl, Unit, EltTys, FwdDecl); if (const ClassTemplateSpecializationDecl *TSpecial |