[cfe-commits] r59579 - in /cfe/trunk: include/clang/Lex/Preprocessor.h lib/Lex/PPDirectives.cpp lib/Lex/PPLexerChange.cpp
Ted Kremenek
kremenek at apple.com
Tue Nov 18 17:54:47 PST 2008
Author: kremenek
Date: Tue Nov 18 19:54:47 2008
New Revision: 59579
URL: http://llvm.org/viewvc/llvm-project?rev=59579&view=rev
Log:
Revert 59574 (caused tests to fail).
Modified:
cfe/trunk/include/clang/Lex/Preprocessor.h
cfe/trunk/lib/Lex/PPDirectives.cpp
cfe/trunk/lib/Lex/PPLexerChange.cpp
Modified: cfe/trunk/include/clang/Lex/Preprocessor.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=59579&r1=59578&r2=59579&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/Preprocessor.h (original)
+++ cfe/trunk/include/clang/Lex/Preprocessor.h Tue Nov 18 19:54:47 2008
@@ -598,23 +598,6 @@
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);
Modified: cfe/trunk/lib/Lex/PPDirectives.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPDirectives.cpp?rev=59579&r1=59578&r2=59579&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/PPDirectives.cpp (original)
+++ cfe/trunk/lib/Lex/PPDirectives.cpp Tue Nov 18 19:54:47 2008
@@ -317,7 +317,7 @@
// Otherwise, see if this is a subframework header. If so, this is relative
// to one of the headers on the #include stack. Walk the list of the current
// headers on the #include stack and pass them to HeaderInfo.
- if (IsNonPragmaNonMacroLexer()) {
+ if (CurLexer && !CurLexer->Is_PragmaLexer) {
if ((CurFileEnt = SourceMgr.getFileEntryForLoc(CurLexer->getFileLoc())))
if ((FE = HeaderInfo.LookupSubframeworkHeader(FilenameStart, FilenameEnd,
CurFileEnt)))
@@ -326,7 +326,7 @@
for (unsigned i = 0, e = IncludeMacroStack.size(); i != e; ++i) {
IncludeStackInfo &ISEntry = IncludeMacroStack[e-i-1];
- if (IsNonPragmaNonMacroLexer(ISEntry)) {
+ if (ISEntry.TheLexer && !ISEntry.TheLexer->Is_PragmaLexer) {
if ((CurFileEnt =
SourceMgr.getFileEntryForLoc(ISEntry.TheLexer->getFileLoc())))
if ((FE = HeaderInfo.LookupSubframeworkHeader(FilenameStart,
Modified: cfe/trunk/lib/Lex/PPLexerChange.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPLexerChange.cpp?rev=59579&r1=59578&r2=59579&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/PPLexerChange.cpp (original)
+++ cfe/trunk/lib/Lex/PPLexerChange.cpp Tue Nov 18 19:54:47 2008
@@ -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);
More information about the cfe-commits
mailing list