Author: teemperor Date: Mon Jan 22 07:27:25 2018 New Revision: 323122 URL: http://llvm.org/viewvc/llvm-project?rev=323122&view=rev Log: [modules] Correctly overload getModule in the MultiplexExternalSemaSource
Summary: The MultiplexExternalSemaSource doesn't correctly overload the `getModule` function, causing the multiplexer to not forward this call as intended. Reviewers: v.g.vassilev Reviewed By: v.g.vassilev Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D39416 Modified: cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp Modified: cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h?rev=323122&r1=323121&r2=323122&view=diff ============================================================================== --- cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h (original) +++ cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h Mon Jan 22 07:27:25 2018 @@ -148,8 +148,10 @@ public: /// \brief Print any statistics that have been gathered regarding /// the external AST source. void PrintStats() override; - - + + /// \brief Retrieve the module that corresponds to the given module ID. + Module *getModule(unsigned ID) override; + /// \brief Perform layout on the given record. /// /// This routine allows the external AST source to provide an specific Modified: cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp?rev=323122&r1=323121&r2=323122&view=diff ============================================================================== --- cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp (original) +++ cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp Mon Jan 22 07:27:25 2018 @@ -164,6 +164,13 @@ void MultiplexExternalSemaSource::PrintS Sources[i]->PrintStats(); } +Module *MultiplexExternalSemaSource::getModule(unsigned ID) { + for (size_t i = 0; i < Sources.size(); ++i) + if (auto M = Sources[i]->getModule(ID)) + return M; + return nullptr; +} + bool MultiplexExternalSemaSource::layoutRecordType(const RecordDecl *Record, uint64_t &Size, uint64_t &Alignment, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits