From: David Blaikie Date: Thu, 15 Aug 2013 21:42:43 +0000 (+0000) Subject: DebugInfo: Make CGDebugInfo::getStaticDataMemberDeclaration's argument type match... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=27ab0362bc030de340e25c72002c15f6b22fe683;p=clang DebugInfo: Make CGDebugInfo::getStaticDataMemberDeclaration's argument type match the semantics Rather than having a cast immediately inside the function, push that type requirement out to the callers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188492 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 6ba0bac2f5..bdc60fb418 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -3002,8 +3002,8 @@ void CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(const CGBlockInfo &block, /// getStaticDataMemberDeclaration - If D is an out-of-class definition of /// a static data member of a class, find its corresponding in-class /// declaration. -llvm::DIDerivedType CGDebugInfo::getStaticDataMemberDeclaration(const Decl *D) { - if (cast(D)->isStaticDataMember()) { +llvm::DIDerivedType CGDebugInfo::getStaticDataMemberDeclaration(const VarDecl *D) { + if (D->isStaticDataMember()) { llvm::DenseMap::iterator MI = StaticDataMemberCache.find(D->getCanonicalDecl()); if (MI != StaticDataMemberCache.end()) @@ -3093,10 +3093,9 @@ void CGDebugInfo::EmitGlobalVariable(const ValueDecl *VD, // Do not use DIGlobalVariable for enums. if (Ty.getTag() == llvm::dwarf::DW_TAG_enumeration_type) return; - llvm::DIGlobalVariable GV = - DBuilder.createStaticVariable(Unit, Name, Name, Unit, - getLineNumber(VD->getLocation()), Ty, true, - Init, getStaticDataMemberDeclaration(VD)); + llvm::DIGlobalVariable GV = DBuilder.createStaticVariable( + Unit, Name, Name, Unit, getLineNumber(VD->getLocation()), Ty, true, Init, + getStaticDataMemberDeclaration(cast(VD))); DeclCache.insert(std::make_pair(VD->getCanonicalDecl(), llvm::WeakVH(GV))); } diff --git a/lib/CodeGen/CGDebugInfo.h b/lib/CodeGen/CGDebugInfo.h index 72d956ed37..f17d47ad37 100644 --- a/lib/CodeGen/CGDebugInfo.h +++ b/lib/CodeGen/CGDebugInfo.h @@ -357,7 +357,7 @@ private: /// getStaticDataMemberDeclaration - Return debug info descriptor to /// describe in-class static data member declaration for the given /// out-of-class definition. - llvm::DIDerivedType getStaticDataMemberDeclaration(const Decl *D); + llvm::DIDerivedType getStaticDataMemberDeclaration(const VarDecl *D); /// getFunctionName - Get function name for the given FunctionDecl. If the /// name is constructred on demand (e.g. C++ destructor) then the name