[PATCH] D123295: [clang][extract-api] Use dedicated API to check for macro equality
Daniel Grumberg via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 7 03:18:14 PDT 2022
dang created this revision.
dang added reviewers: zixuw, ributzka.
Herald added a project: All.
dang requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D123295
Files:
clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
Index: clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
===================================================================
--- clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
+++ clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
@@ -587,7 +587,8 @@
class MacroCallback : public PPCallbacks {
public:
- MacroCallback(const SourceManager &SM, APISet &API) : SM(SM), API(API) {}
+ MacroCallback(const SourceManager &SM, APISet &API, Preprocessor &PP)
+ : SM(SM), API(API), PP(PP) {}
void MacroDefined(const Token &MacroNameToken,
const MacroDirective *MD) override {
@@ -614,9 +615,9 @@
if (!Undef)
return;
- llvm::erase_if(PendingMacros, [&MD](const PendingMacro &PM) {
- return MD.getMacroInfo()->getDefinitionLoc() ==
- PM.MD->getMacroInfo()->getDefinitionLoc();
+ llvm::erase_if(PendingMacros, [&MD, this](const PendingMacro &PM) {
+ return MD.getMacroInfo()->isIdenticalTo(*PM.MD->getMacroInfo(), PP,
+ /*Syntactically*/ false);
});
}
@@ -652,6 +653,7 @@
const SourceManager &SM;
APISet &API;
+ Preprocessor &PP;
llvm::SmallVector<PendingMacro> PendingMacros;
};
@@ -672,8 +674,8 @@
CI.getFrontendOpts().Inputs.back().getKind().getLanguage());
// Register preprocessor callbacks that will add macro definitions to API.
- CI.getPreprocessor().addPPCallbacks(
- std::make_unique<MacroCallback>(CI.getSourceManager(), *API));
+ CI.getPreprocessor().addPPCallbacks(std::make_unique<MacroCallback>(
+ CI.getSourceManager(), *API, CI.getPreprocessor()));
return std::make_unique<ExtractAPIConsumer>(CI.getASTContext(), *API);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123295.421147.patch
Type: text/x-patch
Size: 1689 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220407/a899fe54/attachment-0001.bin>
More information about the cfe-commits
mailing list