diff options
author | Daniel Dunbar <daniel@zuster.org> | 2012-04-05 17:10:06 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2012-04-05 17:10:06 +0000 |
commit | 85ff9693b178658f9d8af7be30a086fb1ab81fdd (patch) | |
tree | 16964a51b792fd6f24a2b2d0658f621c02b07bdf /include | |
parent | 9ee35f9f35452dec05c81fd1bbdd2f700872ea7f (diff) |
[Lex] Add support for 'user specified system frameworks' (see test case).
- Developers of system frameworks need a way for their framework to be treated as a "system framework" during development. Otherwise, they are unable to properly test how their framework behaves when installed because of the semantic changes (in warning behavior) applied to system frameworks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154105 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/Lex/DirectoryLookup.h | 10 | ||||
-rw-r--r-- | include/clang/Lex/HeaderSearch.h | 5 |
2 files changed, 13 insertions, 2 deletions
diff --git a/include/clang/Lex/DirectoryLookup.h b/include/clang/Lex/DirectoryLookup.h index 148f599cc3..95f0d27350 100644 --- a/include/clang/Lex/DirectoryLookup.h +++ b/include/clang/Lex/DirectoryLookup.h @@ -145,17 +145,23 @@ public: /// \param SuggestedModule If non-null, and the file found is semantically /// part of a known module, this will be set to the module that should /// be imported instead of preprocessing/parsing the file found. + /// + /// \param InUserSpecifiedSystemHeader [out] If the file is found, set to true + /// if the file is located in a framework that has been user-specified to be + /// treated as a system framework. const FileEntry *LookupFile(StringRef Filename, HeaderSearch &HS, SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *RelativePath, - Module **SuggestedModule) const; + Module **SuggestedModule, + bool &InUserSpecifiedSystemHeader) const; private: const FileEntry *DoFrameworkLookup( StringRef Filename, HeaderSearch &HS, SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *RelativePath, - Module **SuggestedModule) const; + Module **SuggestedModule, + bool &InUserSpecifiedSystemHeader) const; }; diff --git a/include/clang/Lex/HeaderSearch.h b/include/clang/Lex/HeaderSearch.h index ab520bea55..5128ce6c11 100644 --- a/include/clang/Lex/HeaderSearch.h +++ b/include/clang/Lex/HeaderSearch.h @@ -124,6 +124,11 @@ class HeaderSearch { struct FrameworkCacheEntry { /// The directory entry which should be used for the cached framework. const DirectoryEntry *Directory; + + /// Whether this framework has been "user-specified" to be treated as if it + /// were a system framework (even if it was found outside a system framework + /// directory). + bool IsUserSpecifiedSystemFramework; }; FileManager &FileMgr; |