@ -93,10 +93,10 @@ module PulseTransferFunctions (CFG : ProcCfg.S) = struct
when Typ . Procname . ObjC_Cpp . is_operator_equal callee_pname -> (
when Typ . Procname . ObjC_Cpp . is_operator_equal callee_pname -> (
match actuals with
match actuals with
(* We want to assign * lhs to * rhs when rhs is materialized temporary created in constructor *)
(* We want to assign * lhs to * rhs when rhs is materialized temporary created in constructor *)
| [ AccessExpression lhs ; ( HilExp . AccessExpression ( AddressOf ( Base rhs_base ) ) as rhs_exp ) ]
| [ AccessExpression lhs ; HilExp . AccessExpression ( AddressOf ( Base rhs_base as rhs_exp ) ) ]
when Var . is_cpp_temporary ( fst rhs_base ) ->
when Var . is_cpp_temporary ( fst rhs_base ) ->
let lhs_deref = HilExp . AccessExpression . dereference lhs in
let lhs_deref = HilExp . AccessExpression . dereference lhs in
exec_assign summary lhs_deref rhs_exp call_loc astate
exec_assign summary lhs_deref ( HilExp . AccessExpression rhs_exp ) call_loc astate
(* copy assignment *)
(* copy assignment *)
| [ AccessExpression lhs ; HilExp . AccessExpression rhs ] ->
| [ AccessExpression lhs ; HilExp . AccessExpression rhs ] ->
let lhs_deref = HilExp . AccessExpression . dereference lhs in
let lhs_deref = HilExp . AccessExpression . dereference lhs in