diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Lex/MacroArgs.cpp | 6 | ||||
-rw-r--r-- | lib/Lex/PPDirectives.cpp | 12 | ||||
-rw-r--r-- | lib/Lex/PPMacroExpansion.cpp | 9 | ||||
-rw-r--r-- | lib/Lex/TokenLexer.cpp | 6 |
4 files changed, 1 insertions, 32 deletions
diff --git a/lib/Lex/MacroArgs.cpp b/lib/Lex/MacroArgs.cpp index c3d7738afe..7a805f349f 100644 --- a/lib/Lex/MacroArgs.cpp +++ b/lib/Lex/MacroArgs.cpp @@ -120,12 +120,6 @@ MacroArgs::getPreExpArgument(unsigned Arg, Preprocessor &PP) { Result.push_back(Token()); Token &Tok = Result.back(); PP.Lex(Tok); - - // Eagerly resolve instantiation ID's to their spelling location. This - // makes it so we only have to get the spelling loc once per macro argument - // preexpansion instead of once per each time the token is expanded. - if (!Tok.getLocation().isFileID()) - Tok.setLocation(PP.getSourceManager().getSpellingLoc(Tok.getLocation())); } while (Result.back().isNot(tok::eof)); // Pop the token stream off the top of the stack. We know that the internal diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp index 099dfb4aef..4bf012c1b1 100644 --- a/lib/Lex/PPDirectives.cpp +++ b/lib/Lex/PPDirectives.cpp @@ -1206,12 +1206,6 @@ void Preprocessor::HandleDefineDirective(Token &DefineTok) { if (MI->isObjectLike()) { // Object-like macros are very simple, just read their body. while (Tok.isNot(tok::eom)) { - // If this token has a virtual location, resolve it down to its spelling - // location. This is not strictly needed, but avoids extra resolutions - // for macros that are expanded frequently. - if (!Tok.getLocation().isFileID()) - Tok.setLocation(SourceMgr.getSpellingLoc(Tok.getLocation())); - MI->AddTokenToBody(Tok); // Get the next token of the macro. LexUnexpandedToken(Tok); @@ -1221,12 +1215,6 @@ void Preprocessor::HandleDefineDirective(Token &DefineTok) { // Otherwise, read the body of a function-like macro. This has to validate // the # (stringize) operator. while (Tok.isNot(tok::eom)) { - // If this token has a virtual location, resolve it down to its spelling - // location. This is not strictly needed, but avoids extra resolutions - // for macros that are expanded frequently. - if (!Tok.getLocation().isFileID()) - Tok.setLocation(SourceMgr.getSpellingLoc(Tok.getLocation())); - MI->AddTokenToBody(Tok); // Check C99 6.10.3.2p1: ensure that # operators are followed by macro diff --git a/lib/Lex/PPMacroExpansion.cpp b/lib/Lex/PPMacroExpansion.cpp index b3e921c368..8eada6003d 100644 --- a/lib/Lex/PPMacroExpansion.cpp +++ b/lib/Lex/PPMacroExpansion.cpp @@ -340,13 +340,6 @@ MacroArgs *Preprocessor::ReadFunctionLikeMacroArgs(Token &MacroName, if (!MI->isEnabled()) Tok.setFlag(Token::DisableExpand); } - - // If this token has instantiation location, resolve it down to its - // spelling location. This is not strictly needed, but avoids extra - // resolutions for macros that are expanded frequently. - if (!Tok.getLocation().isFileID()) - Tok.setLocation(SourceMgr.getSpellingLoc(Tok.getLocation())); - ArgTokens.push_back(Tok); } @@ -359,7 +352,7 @@ MacroArgs *Preprocessor::ReadFunctionLikeMacroArgs(Token &MacroName, Token EOFTok; EOFTok.startToken(); EOFTok.setKind(tok::eof); - EOFTok.setLocation(SourceMgr.getSpellingLoc(Tok.getLocation())); + EOFTok.setLocation(Tok.getLocation()); EOFTok.setLength(0); ArgTokens.push_back(EOFTok); ++NumActuals; diff --git a/lib/Lex/TokenLexer.cpp b/lib/Lex/TokenLexer.cpp index 7ae61beb88..40f6640cd7 100644 --- a/lib/Lex/TokenLexer.cpp +++ b/lib/Lex/TokenLexer.cpp @@ -33,12 +33,6 @@ void TokenLexer::Init(Token &Tok, MacroArgs *Actuals) { CurToken = 0; InstantiateLoc = Tok.getLocation(); - - // If the instantiation loc is not already a FileID, resolve it here. If we - // don't do this, we end up doing it once per token lexed. - if (!InstantiateLoc.isFileID()) - InstantiateLoc = PP.getSourceManager().getInstantiationLoc(InstantiateLoc); - AtStartOfLine = Tok.isAtStartOfLine(); HasLeadingSpace = Tok.hasLeadingSpace(); Tokens = &*Macro->tokens_begin(); |