Make a fundamental change to the way we represent the location of LexerToken's.
Now, instead of keeping a pointer to the start of the token in memory, we keep the
start of the token as a SourceLocation node. This means that each LexerToken knows
the full include stack it was created with, and means that the LexerToken isn't
reliant on a "CurLexer" member to be around (lexer tokens would previously go out of
scope when their lexers were deallocated).
This simplifies several things, and forces good cleanup elsewhere. Now the
Preprocessor is the one that knows how to dump tokens/macros and is the one that
knows how to get the spelling of a token (it has all the context).
llvm-svn: 38551
diff --git a/clang/Lex/PPExpressions.cpp b/clang/Lex/PPExpressions.cpp
index 3eeb3d9..204a8bb 100644
--- a/clang/Lex/PPExpressions.cpp
+++ b/clang/Lex/PPExpressions.cpp
@@ -127,7 +127,7 @@
return true;
case tok::numeric_constant: {
// FIXME: faster. FIXME: track signs.
- std::string Spell = Lexer::getSpelling(PeekTok, getLangOptions());
+ std::string Spell = getSpelling(PeekTok);
// FIXME: COMPUTE integer constants CORRECTLY.
Result = atoi(Spell.c_str());
Lex(PeekTok);