From cb4a16b460496a69cba4b25a75d4c0f6ab8b567c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ezgi=20=C3=87i=C3=A7ek?= Date: Wed, 24 Jul 2019 03:41:18 -0700 Subject: [PATCH] [pulse] Fix marking of AddressOfCppTemporary in the loop Reviewed By: jvillard Differential Revision: D16457665 fbshipit-source-id: cd52c1309 --- infer/src/pulse/PulseOperations.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infer/src/pulse/PulseOperations.ml b/infer/src/pulse/PulseOperations.ml index 29d922f6f..17730fa6c 100644 --- a/infer/src/pulse/PulseOperations.ml +++ b/infer/src/pulse/PulseOperations.ml @@ -293,12 +293,12 @@ let mark_address_of_cpp_temporary history variable address astate = let remove_vars vars astate = let astate = - List.fold vars ~init:astate ~f:(fun heap var -> + List.fold vars ~init:astate ~f:(fun astate var -> match Stack.find_opt var astate with | Some (address, history) when Var.is_cpp_temporary var -> mark_address_of_cpp_temporary history var address astate | _ -> - heap ) + astate ) in let astate' = Stack.remove_vars vars astate in if phys_equal astate' astate then astate else PulseAbductiveDomain.discard_unreachable astate'