aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Lex/MacroArgs.cpp6
-rw-r--r--lib/Lex/PPDirectives.cpp12
-rw-r--r--lib/Lex/PPMacroExpansion.cpp9
-rw-r--r--lib/Lex/TokenLexer.cpp6
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();