From 916d8be2528e73dc0d6d8a07a154753c51849086 Mon Sep 17 00:00:00 2001 From: Vassil Vassilev Date: Thu, 6 Oct 2016 13:18:06 +0000 Subject: [PATCH] Allocate after the early exit checks. NFC. llvm-svn: 283448 --- clang/lib/Serialization/ASTReaderDecl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index 9147f92..19113da 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -2320,8 +2320,6 @@ template void ASTDeclReader::mergeRedeclarable(Redeclarable *DBase, RedeclarableResult &Redecl, DeclID TemplatePatternID) { - T *D = static_cast(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 *DBase, if (!DBase->isFirstDecl()) return; + T *D = static_cast(DBase); + if (auto *Existing = Redecl.getKnownMergeTarget()) // We already know of an existing declaration we should merge with. mergeRedeclarable(D, cast(Existing), Redecl, TemplatePatternID); -- 2.7.4