Skip to content

Commit 9e29b22

Browse files
committed
CHB:ARM: elevate exit location to full analysis location to capture def-use for return values
1 parent bb9714a commit 9e29b22

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

CodeHawk/CHB/bchlibarm32/bCHTranslateARMToCHIF.ml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4626,8 +4626,13 @@ object (self)
46264626
(["defusehigh"],
46274627
{op_name = new symbol_t ~atts:["exit"] "use_high";
46284628
op_args = [("dst", v, WRITE)]})) symvars in
4629+
let exitname = new symbol_t ~atts:["exit"] "invariant" in
4630+
let cmdinvop = OPERATION {op_name = exitname; op_args = []} in
46294631
let constantAssigns = env#end_transaction in
4630-
let cmds = constantAssigns @ cmds @ cmdshigh in
4632+
let cmds = constantAssigns @ [cmdinvop] @ cmds @ cmdshigh in
4633+
let returnvar = finfo#env#mk_arm_register_variable AR0 in
4634+
let _ = finfo#add_use_loc returnvar "exit" in
4635+
let _ = finfo#add_use_high_loc returnvar "exit" in
46314636
TRANSACTION (new symbol_t "exit", LF.mkCode cmds, None)
46324637

46334638
method translate =

0 commit comments

Comments
 (0)