data: Analyze all types of macro usage

This commit is contained in:
Eberhard Graether
2016-06-11 03:46:44 +02:00
parent 594bb41a6f
commit 77080464d7
3 changed files with 139 additions and 42 deletions
@@ -92,10 +92,38 @@ void PreprocessorCallbacks::MacroDefined(const clang::Token& macroNameToken, con
}
}
void PreprocessorCallbacks::MacroUndefined(
const clang::Token& macroNameToken, const clang::MacroDefinition& macroDefinition)
{
onMacroUsage(macroNameToken);
}
void PreprocessorCallbacks::Defined(
const clang::Token& macroNameToken, const clang::MacroDefinition& macroDefinition, clang::SourceRange range)
{
onMacroUsage(macroNameToken);
}
void PreprocessorCallbacks::Ifdef(clang::SourceLocation location, const clang::Token& macroNameToken,
const clang::MacroDefinition& macroDefinition)
{
onMacroUsage(macroNameToken);
}
void PreprocessorCallbacks::Ifndef(clang::SourceLocation location, const clang::Token& macroNameToken,
const clang::MacroDefinition& macroDefinition)
{
onMacroUsage(macroNameToken);
}
void PreprocessorCallbacks::MacroExpands(
const clang::Token& macroNameToken, const clang::MacroDefinition& macroDirective,
clang::SourceRange range, const clang::MacroArgs* args
){
onMacroUsage(macroNameToken);
}
void PreprocessorCallbacks::onMacroUsage(const clang::Token& macroNameToken)
{
const std::string& fileStr = m_sourceManager.getFilename(m_sourceManager.getFileLoc(macroNameToken.getLocation()));
if (!fileStr.size())
{