Author: rsmith Date: Tue Apr 18 21:19:21 2017 New Revision: 300653 URL: http://llvm.org/viewvc/llvm-project?rev=300653&view=rev Log: Fix member function call with null 'this' pointer.
Modified: cfe/trunk/lib/AST/Decl.cpp Modified: cfe/trunk/lib/AST/Decl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=300653&r1=300652&r2=300653&view=diff ============================================================================== --- cfe/trunk/lib/AST/Decl.cpp (original) +++ cfe/trunk/lib/AST/Decl.cpp Tue Apr 18 21:19:21 2017 @@ -2253,6 +2253,7 @@ bool VarDecl::checkInitIsICE() const { template<typename DeclT> static DeclT *getDefinitionOrSelf(DeclT *D) { + assert(D); if (auto *Def = D->getDefinition()) return Def; return D; @@ -3202,9 +3203,12 @@ bool FunctionDecl::isTemplateInstantiati FunctionDecl *FunctionDecl::getTemplateInstantiationPattern() const { // Handle class scope explicit specialization special case. - if (getTemplateSpecializationKind() == TSK_ExplicitSpecialization) - return getDefinitionOrSelf(getClassScopeSpecializationPattern()); - + if (getTemplateSpecializationKind() == TSK_ExplicitSpecialization) { + if (auto *Spec = getClassScopeSpecializationPattern()) + return getDefinitionOrSelf(Spec); + return nullptr; + } + // If this is a generic lambda call operator specialization, its // instantiation pattern is always its primary template's pattern // even if its primary template was instantiated from another _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits