Allocate after the early exit checks. NFC.
authorVassil Vassilev <v.g.vassilev@gmail.com>
Thu, 6 Oct 2016 13:18:06 +0000 (13:18 +0000)
committerVassil Vassilev <v.g.vassilev@gmail.com>
Thu, 6 Oct 2016 13:18:06 +0000 (13:18 +0000)
llvm-svn: 283448

clang/lib/Serialization/ASTReaderDecl.cpp

index 9147f92..19113da 100644 (file)
@@ -2320,8 +2320,6 @@ template<typename T>
 void ASTDeclReader::mergeRedeclarable(Redeclarable<T> *DBase,
                                       RedeclarableResult &Redecl,
                                       DeclID TemplatePatternID) {
-  T *D = static_cast<T*>(DBase);
-
   // If modules are not available, there is no reason to perform this merge.
   if (!Reader.getContext().getLangOpts().Modules)
     return;
@@ -2330,6 +2328,8 @@ void ASTDeclReader::mergeRedeclarable(Redeclarable<T> *DBase,
   if (!DBase->isFirstDecl())
     return;
 
+  T *D = static_cast<T*>(DBase);
+
   if (auto *Existing = Redecl.getKnownMergeTarget())
     // We already know of an existing declaration we should merge with.
     mergeRedeclarable(D, cast<T>(Existing), Redecl, TemplatePatternID);