diff options
author | Son Ho | 2022-01-15 21:31:57 +0100 |
---|---|---|
committer | Son Ho | 2022-01-15 21:31:57 +0100 |
commit | 9564ad271a9d69ca58333ec33c778f3255ca1632 (patch) | |
tree | f93460bc00a86750333b3aa50722ac3d31716da4 /src/InterpreterExpressions.ml | |
parent | 231c65c04c511db3c8f7f68cd5d37cdeeedfe809 (diff) |
Add sv_kind ("symbolic value kind") to track the origin of the symbolic
values
Diffstat (limited to '')
-rw-r--r-- | src/InterpreterExpressions.ml | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/InterpreterExpressions.ml b/src/InterpreterExpressions.ml index f577a190..2390aa48 100644 --- a/src/InterpreterExpressions.ml +++ b/src/InterpreterExpressions.ml @@ -242,7 +242,9 @@ let eval_unary_op_symbolic (config : C.config) (ctx : C.eval_ctx) | E.Neg, T.Integer int_ty -> T.Integer int_ty | _ -> failwith "Invalid input for unop" in - let res_sv = { V.sv_id = res_sv_id; sv_ty = res_sv_ty } in + let res_sv = + { V.sv_kind = V.FunCallRet; V.sv_id = res_sv_id; sv_ty = res_sv_ty } + in (* Synthesize *) S.synthesize_unary_op unop v res_sv; (* Return *) @@ -360,7 +362,9 @@ let eval_binary_op_symbolic (config : C.config) (ctx : C.eval_ctx) | E.Ne | E.Eq -> failwith "Unreachable") | _ -> failwith "Invalid inputs for binop" in - let res_sv = { V.sv_id = res_sv_id; sv_ty = res_sv_ty } in + let res_sv = + { V.sv_kind = V.FunCallRet; V.sv_id = res_sv_id; sv_ty = res_sv_ty } + in (* Synthesize *) S.synthesize_binary_op binop v1 v2 res_sv; (* Return *) |