[clang] [analyzer] Print the PostInitializer target in exploded-graph-rewriter (PR #116034)

Balazs Benics via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 15 05:26:26 PST 2024


https://github.com/steakhal updated https://github.com/llvm/llvm-project/pull/116034

>From b815854d4b96651b483a28010b59adb889c44dbc Mon Sep 17 00:00:00 2001
From: Balazs Benics <benicsbalazs at gmail.com>
Date: Wed, 13 Nov 2024 12:55:06 +0100
Subject: [PATCH] [analyzer] Print the PostInitializer target in
 exploded-graph-rewriter

This aids debugging PostInitializer program points by knowing what is
the location being initialized.
---
 clang/utils/analyzer/exploded-graph-rewriter.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/clang/utils/analyzer/exploded-graph-rewriter.py b/clang/utils/analyzer/exploded-graph-rewriter.py
index eca0f17beb40a0..dcda91e8a6809b 100755
--- a/clang/utils/analyzer/exploded-graph-rewriter.py
+++ b/clang/utils/analyzer/exploded-graph-rewriter.py
@@ -90,6 +90,11 @@ def __init__(self, json_pp):
             self.callee_decl = json_pp.get("callee_decl", "None")
         elif self.kind == "BlockEntrance":
             self.block_id = json_pp["block_id"]
+        elif self.kind == "PostInitializer":
+            if "field_decl" in json_pp:
+                self.target = json_pp["field_decl"]
+            else:
+                self.target = json_pp["type"]
 
 
 # A single expression acting as a key in a deserialized Environment.
@@ -627,6 +632,13 @@ def visit_program_point(self, p):
                 '<font color="%s">%s</font></td>'
                 '<td align="left">%s</td></tr>' % (color, p.kind, p.callee_decl)
             )
+        elif p.kind == "PostInitializer":
+            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.target)
+            )
         else:
             # TODO: Print more stuff for other kinds of points.
             self._dump(



More information about the cfe-commits mailing list