 +                                                   uint64_t &Size, 
 +                                                   uint64_t &Alignment,
 +                      llvm::DenseMap<const FieldDecl *, uint64_t> &FieldOffsets,
-+                   llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,
-+           llvm::DenseMap<const CXXRecordDecl *, CharUnits> &VirtualBaseOffsets){
++                  llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,
++          llvm::DenseMap<const CXXRecordDecl *, CharUnits> &VirtualBaseOffsets){
 +  for(size_t i = 0; i < Sources.size(); ++i)
 +    if (Sources[i]->layoutRecordType(Record, Size, Alignment, FieldOffsets, 
 +                                     BaseOffsets, VirtualBaseOffsets))

+  /// external source should take care not to introduce the same instantiations
+  /// repeatedly.
+  virtual void ReadPendingInstantiations(
+               SmallVectorImpl<std::pair<ValueDecl*, SourceLocation> >& Pending);
+
+  // isa/cast/dyn_cast support
+  static bool classof(const MultiplexExternalSemaSource*) { return true; }

+  /// the external source should take care not to introduce the same identifiers
+  /// repeatedly.
+  virtual void ReadWeakUndeclaredIdentifiers(
+                    SmallVectorImpl<std::pair<IdentifierInfo*, WeakInfo> > &WI);
+
+  /// \brief Read the set of used vtables known to the external Sema source.
+  ///
