diff --git a/include/cling/Interpreter/MultiplexExternalSemaSource.h b/include/cling/Interpreter/MultiplexExternalSemaSource.h index d6b4175c..81518a76 100644 --- a/include/cling/Interpreter/MultiplexExternalSemaSource.h +++ b/include/cling/Interpreter/MultiplexExternalSemaSource.h @@ -10,6 +10,7 @@ #include "clang/Sema/ExternalSemaSource.h" #include "clang/Sema/Weak.h" +#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SmallVector.h" #include @@ -36,10 +37,15 @@ namespace cling { class MultiplexExternalSemaSource : public clang::ExternalSemaSource { private: - llvm::SmallVector m_Sources; + llvm::SmallVector m_Sources; // doesn't own them. public: - MultiplexExternalSemaSource() { } + + ///\brief Constructs the external source with given elements. + /// + ///\param[in] sources - Array of ExternalSemaSources. + /// + MultiplexExternalSemaSource(llvm::ArrayRef sources); ~MultiplexExternalSemaSource(); diff --git a/lib/Interpreter/MultiplexExternalSemaSource.cpp b/lib/Interpreter/MultiplexExternalSemaSource.cpp index ce84b28a..75e53e08 100644 --- a/lib/Interpreter/MultiplexExternalSemaSource.cpp +++ b/lib/Interpreter/MultiplexExternalSemaSource.cpp @@ -11,6 +11,13 @@ using namespace clang; namespace cling { + MultiplexExternalSemaSource::MultiplexExternalSemaSource( + llvm::ArrayRef sources) { + for (size_t i = 0; i < sources.size(); ++i) + m_Sources.push_back(sources[i]); + } + + // pin the vtable here. MultiplexExternalSemaSource::~MultiplexExternalSemaSource() {}