aboutsummaryrefslogtreecommitdiff
path: root/lib/Lex/PTHLexer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Lex/PTHLexer.cpp')
-rw-r--r--lib/Lex/PTHLexer.cpp19
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;