diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-12-08 17:39:04 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-12-08 17:39:04 +0000 |
commit | 10694cee2588442bee1e717f5042c58ffee25279 (patch) | |
tree | 0e68adeb28deebf940644f53fafadf0f4ef3d862 /lib/Basic/Module.cpp | |
parent | 5e3f9223db88227d6d21679c613b139d8160186d (diff) |
Within the module representation, generalize the notion of an umbrella
header to also support umbrella directories. The umbrella directory
for an umbrella header is the directory in which the umbrella header
resides.
No functionality change yet, but it's coming.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146158 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/Module.cpp')
-rw-r--r-- | lib/Basic/Module.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Basic/Module.cpp b/lib/Basic/Module.cpp index 97bddfa97e..169715736b 100644 --- a/lib/Basic/Module.cpp +++ b/lib/Basic/Module.cpp @@ -65,6 +65,13 @@ std::string Module::getFullModuleName() const { return Result; } +const DirectoryEntry *Module::getUmbrellaDir() const { + if (const FileEntry *Header = getUmbrellaHeader()) + return Header->getDir(); + + return Umbrella.dyn_cast<const DirectoryEntry *>(); +} + static void printModuleId(llvm::raw_ostream &OS, const ModuleId &Id) { for (unsigned I = 0, N = Id.size(); I != N; ++I) { if (I) @@ -81,7 +88,7 @@ void Module::print(llvm::raw_ostream &OS, unsigned Indent) const { OS << "explicit "; OS << "module " << Name << " {\n"; - if (UmbrellaHeader) { + if (const FileEntry *UmbrellaHeader = getUmbrellaHeader()) { OS.indent(Indent + 2); OS << "umbrella \""; OS.write_escaped(UmbrellaHeader->getName()); |