aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Lex/Preprocessor.h
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-11-19 21:57:25 +0000
committerTed Kremenek <kremenek@apple.com>2008-11-19 21:57:25 +0000
commit41938c8493b4380df738263166b746eacb33c309 (patch)
tree022e9ebc4fce4341598c81f1242256cd79830325 /include/clang/Lex/Preprocessor.h
parentcda658e90d7ffe0ece23d741ff82cf764108f66c (diff)
- Move static function IsNonPragmaNonMacroLexer into Preprocessor.h.
- Add variants of IsNonPragmaNonMacroLexer to accept an IncludeMacroStack entry (simplifies some uses). - Use IsNonPragmaNonMacroLexer in Preprocessor::LookupFile. - Add 'FileID' to PreprocessorLexer, and have Preprocessor query this fileid when looking up the FileEntry for a file Performance testing of -Eonly on Cocoa.h shows no performance regression because of this patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59666 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Lex/Preprocessor.h')
-rw-r--r--include/clang/Lex/Preprocessor.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h
index 4d31be4ecf..d803cb6a97 100644
--- a/include/clang/Lex/Preprocessor.h
+++ b/include/clang/Lex/Preprocessor.h
@@ -608,7 +608,25 @@ private:
const FileEntry *LookupFile(const char *FilenameStart,const char *FilenameEnd,
bool isAngled, const DirectoryLookup *FromDir,
const DirectoryLookup *&CurDir);
-
+
+
+
+ static bool IsNonPragmaNonMacroLexer(const Lexer* L,
+ const PreprocessorLexer* P) {
+ if (L)
+ return !L->isPragmaLexer();
+ else
+ return P != 0;
+ }
+
+ static bool IsNonPragmaNonMacroLexer(const IncludeStackInfo& I) {
+ return IsNonPragmaNonMacroLexer(I.TheLexer, I.ThePPLexer);
+ }
+
+ bool IsNonPragmaNonMacroLexer() const {
+ return IsNonPragmaNonMacroLexer(CurLexer.get(), CurPPLexer);
+ }
+
//===--------------------------------------------------------------------===//
// Caching stuff.
void CachingLex(Token &Result);