 Index: tools/clang/include/clang/Sema/Sema.h
 ===================================================================
---- tools/clang/include/clang/Sema/Sema.h	(revision 46396)
-+++ tools/clang/include/clang/Sema/Sema.h	(revision 46397)
+--- tools/clang/include/clang/Sema/Sema.h	(revision 165095)
++++ tools/clang/include/clang/Sema/Sema.h	(working copy)
 @@ -190,6 +190,13 @@
    Sema(const Sema &) LLVM_DELETED_FUNCTION;
    void operator=(const Sema &) LLVM_DELETED_FUNCTION;

+  llvm::SmallVector<ExternalSemaSource*, 2> Sources; // doesn't own them.
+
+public:
+
+  ///\brief Constructs a new multiplexing external sema source and appends the
+  /// given element to it.
+  ///
+  ///\param[in] source - A non-null ExternalSemaSource.
+  ///
+  MultiplexExternalSemaSource(ExternalSemaSource &source);
+
+  ~MultiplexExternalSemaSource();
+

     if ((*I)->getUnderlyingType() == VT)
Index: tools/clang/lib/Sema/Sema.cpp
===================================================================
--- tools/clang/lib/Sema/Sema.cpp	(revision 165095)
+++ tools/clang/lib/Sema/Sema.cpp	(working copy)
@@ -22,6 +22,7 @@
 #include "clang/Sema/CXXFieldCollector.h"
 #include "clang/Sema/TemplateDeduction.h"
