diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-03-26 23:47:35 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-03-26 23:47:35 +0000 |
commit | 49ae6a7cf862ae4f8e6a838dd20faf372ff31efa (patch) | |
tree | 92052ab87149368909ccf30374d398aad06b35c6 /clang/lib/CodeGen/CGDebugInfo.cpp | |
parent | a7310a3d1b0a649d42c404dad8d9279f64e47a81 (diff) | |
download | bcm5719-llvm-49ae6a7cf862ae4f8e6a838dd20faf372ff31efa.tar.gz bcm5719-llvm-49ae6a7cf862ae4f8e6a838dd20faf372ff31efa.zip |
Remove magic number usage from CGDebugInfo with new DICompositeType::setContainingType
llvm-svn: 178092
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index 80a9a495fb5..5e350a99612 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -2023,7 +2023,7 @@ llvm::DIType CGDebugInfo::CreateLimitedType(const RecordType *Ty) { uint64_t Size = CGM.getContext().getTypeSize(Ty); uint64_t Align = CGM.getContext().getTypeAlign(Ty); const CXXRecordDecl *CXXDecl = dyn_cast<CXXRecordDecl>(RD); - llvm::TrackingVH<llvm::MDNode> RealDecl; + llvm::DICompositeType RealDecl; if (RD->isUnion()) RealDecl = DBuilder.createUnionType(RDContext, RDName, DefUnit, Line, @@ -2040,11 +2040,11 @@ llvm::DIType CGDebugInfo::CreateLimitedType(const RecordType *Ty) { Size, Align, 0, llvm::DIType(), llvm::DIArray()); RegionMap[Ty->getDecl()] = llvm::WeakVH(RealDecl); - TypeCache[QualType(Ty, 0).getAsOpaquePtr()] = llvm::DIType(RealDecl); + TypeCache[QualType(Ty, 0).getAsOpaquePtr()] = RealDecl; if (CXXDecl) { // A class's primary base or the class itself contains the vtable. - llvm::MDNode *ContainingType = NULL; + llvm::DICompositeType ContainingType; const ASTRecordLayout &RL = CGM.getContext().getASTRecordLayout(RD); if (const CXXRecordDecl *PBase = RL.getPrimaryBase()) { // Seek non virtual primary base root. @@ -2056,13 +2056,12 @@ llvm::DIType CGDebugInfo::CreateLimitedType(const RecordType *Ty) { else break; } - ContainingType = - getOrCreateType(QualType(PBase->getTypeForDecl(), 0), DefUnit); - } - else if (CXXDecl->isDynamicClass()) + ContainingType = llvm::DICompositeType( + getOrCreateType(QualType(PBase->getTypeForDecl(), 0), DefUnit)); + } else if (CXXDecl->isDynamicClass()) ContainingType = RealDecl; - RealDecl->replaceOperandWith(12, ContainingType); + RealDecl.setContainingType(ContainingType); } return llvm::DIType(RealDecl); } |