diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-12-05 17:28:06 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-12-05 17:28:06 +0000 |
commit | 0adaa880993ad23186c87c7f98e7a3fd2697742c (patch) | |
tree | ad45854454861d185a11fb6dd96498f454d48441 /lib/Basic | |
parent | 4bc8738d837e5d401235f99e55277338e20e3651 (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.cpp | 12 |
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; |