diff options
Diffstat (limited to 'lib/Lex/PTHLexer.cpp')
-rw-r--r-- | lib/Lex/PTHLexer.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp index 99bb3f795d..aa59db5ae2 100644 --- a/lib/Lex/PTHLexer.cpp +++ b/lib/Lex/PTHLexer.cpp @@ -125,11 +125,19 @@ LexNextToken: Tok.setKind(TKind); Tok.setFlag(TFlags); assert(!LexingRawMode); - if (IdentifierID) - Tok.setIdentifierInfo(PTHMgr.GetIdentifierInfo(IdentifierID-1)); Tok.setLocation(FileStartLoc.getFileLocWithOffset(FileOffset)); Tok.setLength(Len); + // Handle identifiers. + if (IdentifierID) { + MIOpt.ReadToken(); + IdentifierInfo *II = PTHMgr.GetIdentifierInfo(IdentifierID-1); + Tok.setIdentifierInfo(II); + if (II->isHandleIdentifierCase()) + PP->HandleIdentifier(Tok); + return; + } + //===--------------------------------------==// // Process the token. //===--------------------------------------==// @@ -141,13 +149,6 @@ LexNextToken: << '\n'; #endif - if (TKind == tok::identifier) { - MIOpt.ReadToken(); - if (Tok.getIdentifierInfo()->isHandleIdentifierCase()) - PP->HandleIdentifier(Tok); - return; - } - if (TKind == tok::eof) { // Save the end-of-file token. EofToken = Tok; |