aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic/Module.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-09 02:04:43 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-09 02:04:43 +0000
commit6a1db484f32eb791840dd55a8d45c86ff5bd0834 (patch)
treef9190172e372da1e6ea95d4e22431372d4b787fc /include/clang/Basic/Module.h
parent71088d1af241ad114294ec3fe03cd9baea39ee08 (diff)
Implement the notion of umbrella directories, which implicity cover
all of the headers below that particular directory. Use umbrella directories as a clean way to deal with (1) directories/frameworks that don't have an umbrella header, but don't want to enumerate all of their headers, and (2) PrivateHeaders, which we never want to enumerate and want to keep separate from the main umbrella header. This also eliminates a little more of the "magic" for private headers, and frameworks in general. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146235 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/Module.h')
-rw-r--r--include/clang/Basic/Module.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/clang/Basic/Module.h b/include/clang/Basic/Module.h
index 0f2a9a7b3d..aef2db0fed 100644
--- a/include/clang/Basic/Module.h
+++ b/include/clang/Basic/Module.h
@@ -194,6 +194,12 @@ public:
return Umbrella.dyn_cast<const FileEntry *>();
}
+ /// \brief Determine whether this module has an umbrella directory that is
+ /// not based on an umbrella header.
+ bool hasUmbrellaDir() const {
+ return Umbrella && Umbrella.is<const DirectoryEntry *>();
+ }
+
/// \brief Print the module map for this module to the given stream.
///
void print(llvm::raw_ostream &OS, unsigned Indent = 0) const;