aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-05 17:28:06 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-05 17:28:06 +0000
commit0adaa880993ad23186c87c7f98e7a3fd2697742c (patch)
treead45854454861d185a11fb6dd96498f454d48441 /lib/Basic
parent4bc8738d837e5d401235f99e55277338e20e3651 (diff)
Implement support for wildcard exports in modules, allowing a module
to re-export anything that it imports. This opt-in feature makes a module behave more like a header, because it can be used to re-export the transitive closure of a (sub)module's dependencies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145811 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic')
-rw-r--r--lib/Basic/Module.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Basic/Module.cpp b/lib/Basic/Module.cpp
index 6bca55c754..59fced5f16 100644
--- a/lib/Basic/Module.cpp
+++ b/lib/Basic/Module.cpp
@@ -25,6 +25,18 @@ Module::~Module() {
}
+bool Module::isSubModuleOf(Module *Other) const {
+ const Module *This = this;
+ do {
+ if (This == Other)
+ return true;
+
+ This = This->Parent;
+ } while (This);
+
+ return false;
+}
+
std::string Module::getFullModuleName() const {
llvm::SmallVector<StringRef, 2> Names;