summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Module.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-08 17:39:04 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-08 17:39:04 +0000
commit73141fa98d34ccd5cd420301122df4e214d9238a (patch)
tree735c613820ce3692df6c8c2580ce7f04b179b7fd /clang/lib/Basic/Module.cpp
parentc09e4593b2ab7aadf07aef1c6b2be7f6d6e13061 (diff)
downloadbcm5719-llvm-73141fa98d34ccd5cd420301122df4e214d9238a.tar.gz
bcm5719-llvm-73141fa98d34ccd5cd420301122df4e214d9238a.zip
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. llvm-svn: 146158
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
-rw-r--r--clang/lib/Basic/Module.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Basic/Module.cpp b/clang/lib/Basic/Module.cpp
index 97bddfa97ea..169715736bc 100644
--- a/clang/lib/Basic/Module.cpp
+++ b/clang/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());
OpenPOWER on IntegriCloud