diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index 75d7f70a6368e2f3cf0f6ae005a722385377b4c2..f7d9787fbea7ddd775437f99c9b8262fa27bf63f 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -3555,9 +3555,11 @@ void Sema::InstantiateFunctionDefinition(SourceLocation PointOfInstantiation, assert(PatternDecl && "instantiating a non-template"); const FunctionDecl *PatternDef = PatternDecl->getDefinition(); - Stmt *Pattern = PatternDef->getBody(PatternDef); - if (PatternDef) + Stmt *Pattern = nullptr; + if (PatternDef) { + Pattern = PatternDef->getBody(PatternDef); PatternDecl = PatternDef; + } // FIXME: We need to track the instantiation stack in order to know which // definitions should be visible within this instantiation.