Skip to content

Commit fa3c09f

Browse files
committed
CHB: don't replace variables associated with tests
1 parent 460c5b0 commit fa3c09f

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

CodeHawk/CHB/bchlib/bCHFunctionInfo.ml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2021,7 +2021,21 @@ object (self)
20212021
method set_test_variables
20222022
(test_iaddr: ctxt_iaddress_t)
20232023
(vars: (variable_t * variable_t) list) =
2024-
H.replace test_variables test_iaddr vars
2024+
(* Multiple jump (or other use) sites may be using the same test, so we
2025+
cannot just replace the set of test_variables, when a new set comes in.
2026+
*)
2027+
let entry =
2028+
if H.mem test_variables test_iaddr then
2029+
H.find test_variables test_iaddr
2030+
else
2031+
[] in
2032+
let newentry =
2033+
List.fold_left (fun acc (v1, v2) ->
2034+
if (List.exists (fun (v1', v2') -> v1#equal v1' && v2#equal v2') acc) then
2035+
acc
2036+
else
2037+
(v1, v2) :: acc) entry vars in
2038+
H.replace test_variables test_iaddr newentry
20252039

20262040
method get_test_variables (test_iaddr:ctxt_iaddress_t) =
20272041
if H.mem test_variables test_iaddr then

CodeHawk/CHB/bchlib/bCHVersion.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ end
9595

9696

9797
let version = new version_info_t
98-
~version:"0.6.0_20250625"
99-
~date:"2025-06-25"
98+
~version:"0.6.0_20250702"
99+
~date:"2025-07-02"
100100
~licensee: None
101101
~maxfilesize: None
102102
()

0 commit comments

Comments
 (0)