From 30900dafbe972f4802c2663262b4393edab0d1cd Mon Sep 17 00:00:00 2001 From: John McCall Date: Tue, 8 Mar 2011 04:06:57 +0000 Subject: Add an API call to retrieve the spelling data of a token from its SourceLocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127216 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Lex/Preprocessor.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lib/Lex/Preprocessor.cpp') diff --git a/lib/Lex/Preprocessor.cpp b/lib/Lex/Preprocessor.cpp index 6fe414b664..40227dc5e6 100644 --- a/lib/Lex/Preprocessor.cpp +++ b/lib/Lex/Preprocessor.cpp @@ -278,6 +278,16 @@ void Preprocessor::CodeCompleteNaturalLanguage() { CodeComplete->CodeCompleteNaturalLanguage(); } +llvm::StringRef Preprocessor::getSpelling(SourceLocation loc, + bool *invalid) const { + bool invalidTemp = false; + if (!invalid) invalid = &invalidTemp; + const char *begin = SourceMgr.getCharacterData(loc, invalid); + if (*invalid) return llvm::StringRef(); + + unsigned length = Lexer::MeasureTokenLength(loc, SourceMgr, Features); + return llvm::StringRef(begin, length); +} /// getSpelling - This method is used to get the spelling of a token into a /// SmallVector. Note that the returned StringRef may not point to the -- cgit v1.2.3-18-g5258