Skip to content

Commit 33f9ffe

Browse files
committed
ASTI: add reaching defs to return statement (verbose)
1 parent de9f419 commit 33f9ffe

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

chb/astinterface/ASTICPrettyPrinter.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,24 @@ def visit_branch_stmt(self, stmt: AST.ASTBranch) -> None:
118118
self.reset_reachingdefs()
119119
ASTCPrettyPrinter.visit_branch_stmt(self, stmt)
120120

121+
def visit_return_stmt(self, stmt: AST.ASTReturn) -> None:
122+
## self.reset_reachingdefs()
123+
ASTCPrettyPrinter.visit_return_stmt(self, stmt)
124+
if stmt.has_return_value():
125+
rval = stmt.expr
126+
if self.provenance.has_reaching_defs(rval.exprid):
127+
rdefs = self.provenance.get_reaching_defs(rval.exprid)
128+
else:
129+
self.ccode.write("no reachingdefs for return value")
130+
rdefs = []
131+
for rdef in rdefs:
132+
self.ccode.newline(indent=self.indent + 4)
133+
self.ccode.write(" // " + str(rdef))
134+
self.reset_reachingdefs()
135+
else:
136+
self.ccode.write("no return value")
137+
138+
121139
def visit_assign_instr(self, instr: AST.ASTAssign) -> None:
122140
self.reset_reachingdefs()
123141
ASTCPrettyPrinter.visit_assign_instr(self, instr)

0 commit comments

Comments
 (0)