summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGDebugInfo.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-03-04 03:08:14 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-03-04 03:08:14 +0000
commitf7f21859750c062314ec58765f0d89ce8ce907a1 (patch)
tree4bba8e178f0c2fcf16525d603223d9ab13281795 /clang/lib/CodeGen/CGDebugInfo.cpp
parent7cab007902067c7588e1d736b1c1e216874b1fa7 (diff)
downloadbcm5719-llvm-f7f21859750c062314ec58765f0d89ce8ce907a1.tar.gz
bcm5719-llvm-f7f21859750c062314ec58765f0d89ce8ce907a1.zip
DebugInfo: Improvements/corrections to conservative emission of types in explicit template instantiation declarations
* detect out of line definitions correctly * detect member function explicit specializations correctly llvm-svn: 202779
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp
index 6c24e8f8653..35bd57a0531 100644
--- a/clang/lib/CodeGen/CGDebugInfo.cpp
+++ b/clang/lib/CodeGen/CGDebugInfo.cpp
@@ -1462,7 +1462,8 @@ static bool hasExplicitMemberDefinition(CXXRecordDecl::method_iterator I,
CXXRecordDecl::method_iterator End) {
for (; I != End; ++I)
if (FunctionDecl *Tmpl = I->getInstantiatedFromMemberFunction())
- if (!Tmpl->isImplicit() && Tmpl->hasBody())
+ if (!Tmpl->isImplicit() && Tmpl->isThisDeclarationADefinition() &&
+ !I->getMemberSpecializationInfo()->isExplicitSpecialization())
return true;
return false;
}
OpenPOWER on IntegriCloud