Author: Balazs Benics Date: 2024-11-15T14:21:35+01:00 New Revision: 9cbf2dd6f3900045f1bbbdf44142f572d8f3b339
URL: https://github.com/llvm/llvm-project/commit/9cbf2dd6f3900045f1bbbdf44142f572d8f3b339 DIFF: https://github.com/llvm/llvm-project/commit/9cbf2dd6f3900045f1bbbdf44142f572d8f3b339.diff LOG: [analyzer] Print the callee name in CallEnter in exploded-graph-rewriter (#116225)  Added: Modified: clang/lib/Analysis/ProgramPoint.cpp clang/utils/analyzer/exploded-graph-rewriter.py Removed: ################################################################################ diff --git a/clang/lib/Analysis/ProgramPoint.cpp b/clang/lib/Analysis/ProgramPoint.cpp index 768345c8425f02..7945c5c2fc27fc 100644 --- a/clang/lib/Analysis/ProgramPoint.cpp +++ b/clang/lib/Analysis/ProgramPoint.cpp @@ -13,6 +13,7 @@ #include "clang/Analysis/ProgramPoint.h" #include "clang/AST/ASTContext.h" +#include "clang/Analysis/AnalysisDeclContext.h" #include "clang/Basic/JsonSupport.h" using namespace clang; @@ -81,7 +82,10 @@ void ProgramPoint::printJson(llvm::raw_ostream &Out, const char *NL) const { llvm_unreachable("BlockExitKind"); break; case ProgramPoint::CallEnterKind: - Out << "CallEnter\""; + Out << "CallEnter\", \"callee_decl\": \""; + Out << AnalysisDeclContext::getFunctionName( + castAs<CallEnter>().getCalleeContext()->getDecl()) + << '\"'; break; case ProgramPoint::CallExitBeginKind: Out << "CallExitBegin\""; diff --git a/clang/utils/analyzer/exploded-graph-rewriter.py b/clang/utils/analyzer/exploded-graph-rewriter.py index 5eaa7738103f79..eca0f17beb40a0 100755 --- a/clang/utils/analyzer/exploded-graph-rewriter.py +++ b/clang/utils/analyzer/exploded-graph-rewriter.py @@ -86,6 +86,8 @@ def __init__(self, json_pp): if json_pp["location"] is not None else None ) + elif self.kind == "CallEnter": + self.callee_decl = json_pp.get("callee_decl", "None") elif self.kind == "BlockEntrance": self.block_id = json_pp["block_id"] @@ -618,6 +620,13 @@ def visit_program_point(self, p): '<font color="%s">%s</font></td>' '<td align="left">[B%d]</td></tr>' % (color, p.kind, p.block_id) ) + elif p.kind == "CallEnter": + self._dump( + '<td width="0"></td>' + '<td align="left" width="0">' + '<font color="%s">%s</font></td>' + '<td align="left">%s</td></tr>' % (color, p.kind, p.callee_decl) + ) else: # TODO: Print more stuff for other kinds of points. self._dump( _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits