Revert 59574 (caused tests to fail).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59579 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp
index c16abf4..8733098 100644
--- a/lib/Lex/PPLexerChange.cpp
+++ b/lib/Lex/PPLexerChange.cpp
@@ -25,19 +25,28 @@
 // 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())
+  if (IsNonPragmaNonMacroLexer(CurLexer.get(), CurPPLexer))
     return IncludeMacroStack.empty();
   
   // If there are any stacked lexers, we're in a #include.
-  assert(IsNonPragmaNonMacroLexer(IncludeMacroStack[0]) &&
+  assert(IsNonPragmaNonMacroLexer(IncludeMacroStack[0].TheLexer,
+                                  IncludeMacroStack[0].ThePPLexer) &&
          "Top level include stack isn't our primary lexer?");
   for (unsigned i = 1, e = IncludeMacroStack.size(); i != e; ++i)
-    if (IsNonPragmaNonMacroLexer(IncludeMacroStack[i]))
+    if (IsNonPragmaNonMacroLexer(IncludeMacroStack[i].TheLexer,
+                                 IncludeMacroStack[i].ThePPLexer))
       return false;
-
   return true;
 }
 
@@ -82,7 +91,7 @@
                                             const DirectoryLookup *CurDir) {
     
   // Add the current lexer to the include stack.
-  if (CurPPLexer || CurTokenLexer)
+  if (CurLexer || CurTokenLexer)
     PushIncludeMacroStack();
 
   CurLexer.reset(TheLexer);