- Move static function IsNonPragmaNonMacroLexer into Preprocessor.h.
- Add variants of IsNonPragmaNonMacroLexer to accept an IncludeMacroStack entry
(simplifies some uses).
- Use IsNonPragmaNonMacroLexer in Preprocessor::LookupFile.
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@59574 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp
index 8733098..c16abf4 100644
--- a/lib/Lex/PPLexerChange.cpp
+++ b/lib/Lex/PPLexerChange.cpp
@@ -25,28 +25,19 @@
// Miscellaneous Methods.
//===----------------------------------------------------------------------===//
-static inline bool IsNonPragmaNonMacroLexer(const Lexer* L,
- const PreprocessorLexer* P) {
- if (L)
- return !L->isPragmaLexer();
- else
- return P != 0;
-}
-
/// isInPrimaryFile - Return true if we're in the top-level file, not in a
/// #include. This looks through macro expansions and active _Pragma lexers.
bool Preprocessor::isInPrimaryFile() const {
- if (IsNonPragmaNonMacroLexer(CurLexer.get(), CurPPLexer))
+ if (IsNonPragmaNonMacroLexer())
return IncludeMacroStack.empty();
// If there are any stacked lexers, we're in a #include.
- assert(IsNonPragmaNonMacroLexer(IncludeMacroStack[0].TheLexer,
- IncludeMacroStack[0].ThePPLexer) &&
+ assert(IsNonPragmaNonMacroLexer(IncludeMacroStack[0]) &&
"Top level include stack isn't our primary lexer?");
for (unsigned i = 1, e = IncludeMacroStack.size(); i != e; ++i)
- if (IsNonPragmaNonMacroLexer(IncludeMacroStack[i].TheLexer,
- IncludeMacroStack[i].ThePPLexer))
+ if (IsNonPragmaNonMacroLexer(IncludeMacroStack[i]))
return false;
+
return true;
}
@@ -91,7 +82,7 @@
const DirectoryLookup *CurDir) {
// Add the current lexer to the include stack.
- if (CurLexer || CurTokenLexer)
+ if (CurPPLexer || CurTokenLexer)
PushIncludeMacroStack();
CurLexer.reset(TheLexer);