r323122 - [modules] Correctly overload getModule in the MultiplexExternalSemaSource
Raphael Isemann via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 22 07:27:25 PST 2018
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,
More information about the cfe-commits
mailing list