summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2013-08-15 21:42:43 +0000
committerDavid Blaikie <dblaikie@gmail.com>2013-08-15 21:42:43 +0000
commita0ef9fa6bf99188c49572d42cd86f186efe531d4 (patch)
tree64f4fcb43646b0525fc7bdd78267dfe0fba52b24 /clang/lib
parent6a7234472e22d374ef57c126e0e392c9fd209fc8 (diff)
downloadbcm5719-llvm-a0ef9fa6bf99188c49572d42cd86f186efe531d4.tar.gz
bcm5719-llvm-a0ef9fa6bf99188c49572d42cd86f186efe531d4.zip
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. llvm-svn: 188492
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.cpp11
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.h2
2 files changed, 6 insertions, 7 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp
index 6ba0bac2f56..bdc60fb4183 100644
--- a/clang/lib/CodeGen/CGDebugInfo.cpp
+++ b/clang/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<VarDecl>(D)->isStaticDataMember()) {
+llvm::DIDerivedType CGDebugInfo::getStaticDataMemberDeclaration(const VarDecl *D) {
+ if (D->isStaticDataMember()) {
llvm::DenseMap<const Decl *, llvm::WeakVH>::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<VarDecl>(VD)));
DeclCache.insert(std::make_pair(VD->getCanonicalDecl(), llvm::WeakVH(GV)));
}
diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h
index 72d956ed373..f17d47ad37c 100644
--- a/clang/lib/CodeGen/CGDebugInfo.h
+++ b/clang/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
OpenPOWER on IntegriCloud