[PATCH] D39416: [modules] Correctly overload getModule in the MultiplexExternalSemaSource
Raphael Isemann via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 30 05:47:43 PDT 2017
teemperor created this revision.
The MultiplexExternalSemaSource doesn't correctly overload the `getModule` function,
causing the multiplexer to not forward this call as intended.
https://reviews.llvm.org/D39416
Files:
include/clang/Sema/MultiplexExternalSemaSource.h
lib/Sema/MultiplexExternalSemaSource.cpp
Index: lib/Sema/MultiplexExternalSemaSource.cpp
===================================================================
--- lib/Sema/MultiplexExternalSemaSource.cpp
+++ lib/Sema/MultiplexExternalSemaSource.cpp
@@ -164,6 +164,13 @@
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,
Index: include/clang/Sema/MultiplexExternalSemaSource.h
===================================================================
--- include/clang/Sema/MultiplexExternalSemaSource.h
+++ include/clang/Sema/MultiplexExternalSemaSource.h
@@ -148,8 +148,10 @@
/// \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.
+ virtual Module *getModule(unsigned ID) override;
+
/// \brief Perform layout on the given record.
///
/// This routine allows the external AST source to provide an specific
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39416.120806.patch
Type: text/x-patch
Size: 1333 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171030/d7f23775/attachment-0001.bin>
More information about the cfe-commits
mailing list