@@ -1379,7 +1379,9 @@ struct
1379
1379
JmpBufDomain.JmpBufSet. top ()
1380
1380
end
1381
1381
| Q. EvalInt e ->
1382
- query_evalint (Analyses. ask_of_ctx ctx) ctx.global ctx.local e
1382
+ let r = query_evalint (Analyses. ask_of_ctx ctx) ctx.global ctx.local e in
1383
+ M. tracel " eval_int_base" " %a yields %a\n " CilType.Exp. pretty e Queries.ID. pretty r;
1384
+ r
1383
1385
| Q. EvalMutexAttr e -> begin
1384
1386
let e:exp = Lval (Cil. mkMem ~addr: e ~off: NoOffset ) in
1385
1387
match eval_rv (Analyses. ask_of_ctx ctx) ctx.global ctx.local e with
@@ -2994,9 +2996,11 @@ struct
2994
2996
) dir_reachable_abs;
2995
2997
) combined;
2996
2998
2999
+ let caller_is_modular = ctx.ask IsModular in
3000
+
2997
3001
(* Add globals *)
2998
3002
let add_global_to_queue (g : varinfo ) =
2999
- let a_c = Addr. of_var ~is_modular: false g in
3003
+ let a_c = Addr. of_var ~is_modular: caller_is_modular g in
3000
3004
let a = Addr. of_var ~is_modular: true g in
3001
3005
3002
3006
Queue. add (a_c, a) queue;
@@ -3120,8 +3124,9 @@ struct
3120
3124
let callee_globals = UsedGlobals. get_used_globals f_ask in
3121
3125
let params = f.sformals in
3122
3126
let reachable = collect_targets_with_graph ctx write_graph args params callee_globals (AD. bot () ) in
3123
- let value = ModularUtil.ValueDomainExtension. map_back value ~reachable in
3124
- value
3127
+ let new_value = ModularUtil.ValueDomainExtension. map_back value ~reachable in
3128
+ M. tracel " translate_callee_value_back" " reachable: %a\n Graph: %a\n Original_value: %a\n new_value:%a\n " AD. pretty reachable Graph. pretty write_graph VD. pretty value VD. pretty new_value;
3129
+ new_value
3125
3130
3126
3131
let combine_assign ctx (lval : lval option ) fexp (f : fundec ) (args : exp list ) fc (after : D.t ) (f_ask : Q.ask ) : D.t =
3127
3132
let combine_one (st : D.t ) (fun_st : D.t ) =
0 commit comments