24std::optional<SymbolInfo>
25FindAllMacros::CreateMacroSymbol(
const Token &MacroNameTok,
26 const MacroInfo *info) {
27 std::string FilePath =
31 return SymbolInfo(MacroNameTok.getIdentifierInfo()->getName(),
36 const MacroDirective *MD) {
37 if (
auto Symbol = CreateMacroSymbol(MacroNameTok, MD->getMacroInfo()))
38 ++FileSymbols[*Symbol].Seen;
41void FindAllMacros::MacroUsed(
const Token &Name,
const MacroDefinition &MD) {
42 if (!MD || !SM->isInMainFile(SM->getExpansionLoc(Name.getLocation())))
44 if (
auto Symbol = CreateMacroSymbol(Name, MD.getMacroInfo()))
45 ++FileSymbols[*Symbol].Used;
49 const MacroDefinition &MD, SourceRange Range,
50 const MacroArgs *Args) {
51 MacroUsed(MacroNameTok, MD);
55 const MacroDefinition &MD) {
56 MacroUsed(MacroNameTok, MD);
60 const MacroDefinition &MD) {
61 MacroUsed(MacroNameTok, MD);
65 Reporter->reportSymbols(
66 SM->getFileEntryRefForID(SM->getMainFileID())->getName(), FileSymbols);
clang::find_all_symbols::SymbolInfo SymbolInfo