Skip to content

Commit dc66e76

Browse files
committed
CFG: separate return statement with/without return value
1 parent 33f9ffe commit dc66e76

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

chb/app/CHVersion.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
chbversion: str = "0.3.0-20250723"
1+
chbversion: str = "0.3.0-20250729"

chb/app/Cfg.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -724,8 +724,14 @@ def ast(self,
724724
cstr = rv.constant.string_reference()
725725
straddr = hex(rv.constant.value)
726726
astexpr = astree.mk_string_constant(astexpr, cstr, straddr)
727-
rtnstmt = astree.mk_return_stmt(astexpr, instr.iaddr, instr.bytestring)
728-
blockstmts[n] = [blocknode, rtnstmt]
727+
rtnstmt = astree.mk_return_stmt(
728+
astexpr, instr.iaddr, instr.bytestring)
729+
astree.add_expr_reachingdefs(astexpr, instr.xdata.reachingdefs)
730+
blockstmts[n] = [blocknode, rtnstmt]
731+
else:
732+
rtnstmt = astree.mk_return_stmt(
733+
None, instr.iaddr, instr.bytestring)
734+
blockstmts[n] = [blocknode, rtnstmt]
729735
else:
730736
blockstmts[n] = [blocknode]
731737

0 commit comments

Comments
 (0)