    DeclID FirstDeclID = ReadDeclID(Record, Idx);
    
    // 0 indicates that this declaration was the only declaration of its entity,
-@@ -1545,6 +1552,7 @@
+@@ -1545,6 +1551,7 @@
  void ASTDeclReader::mergeRedeclarable(Redeclarable<T> *D, 
                                        RedeclarableResult &Redecl) {
    // If modules are not available, there is no reason to perform this merge.

   
   // Build up the list of redeclarations.
   RedeclChainVisitor Visitor(*this, SearchDecls, RedeclsDeserialized, CanonID);
@@ -2478,3 +2526,60 @@
     }
   }
 }

+
+   // template <typename T> int fwddeclThenDefinedInLeftRight(T) { return 0; }
+
+  template <typename T> int definedInLeft(T);
+
+   // template <typename T> int definedInLeftSpecializedInRight(T);
+   // template <> int definedInLeftSpecializedInRight<char>(char) { return 1; }
