data: Fixed macro expand location was wrong when used within expansion of different file

This commit is contained in:
Eberhard Graether
2016-06-14 00:01:36 +02:00
parent 72a48f997f
commit b9c0f9ed3e
@@ -142,13 +142,15 @@ void PreprocessorCallbacks::onMacroUsage(const clang::Token& macroNameToken)
ParseLocation PreprocessorCallbacks::getParseLocation(const clang::Token& macroNameTok) const
{
clang::SourceLocation location = macroNameTok.getLocation();
const clang::SourceLocation& location = m_sourceManager.getSpellingLoc(macroNameTok.getLocation());
const clang::SourceLocation& endLocation = m_sourceManager.getSpellingLoc(macroNameTok.getEndLoc());
return ParseLocation(
m_sourceManager.getFilename(m_sourceManager.getFileLoc(location)),
m_sourceManager.getFilename(location),
m_sourceManager.getSpellingLineNumber(location),
m_sourceManager.getSpellingColumnNumber(location),
m_sourceManager.getSpellingLineNumber(macroNameTok.getEndLoc()),
m_sourceManager.getSpellingColumnNumber(macroNameTok.getEndLoc()) - 1
m_sourceManager.getSpellingLineNumber(endLocation),
m_sourceManager.getSpellingColumnNumber(endLocation) - 1
);
}