    return Redecl;
  }
  
-@@ -1515,6 +1521,7 @@
+@@ -1515,6 +1520,7 @@
  template <typename T>
  ASTDeclReader::RedeclarableResult 
  ASTDeclReader::VisitRedeclarable(Redeclarable<T> *D) {

         return FindExistingResult(Reader, D, *R.first);
     }
   }
@@ -1798,22 +1823,38 @@
 void ASTDeclReader::attachPreviousDecl(Decl *D, Decl *previous) {
   assert(D && previous);
   if (TagDecl *TD = dyn_cast<TagDecl>(D)) {

   return D;
 }
 
@@ -2275,7 +2327,7 @@
   }
   MergedDeclsMap::iterator MergedPos = combineStoredMergedDecls(CanonDecl, ID);
   if (MergedPos != MergedDecls.end())
