diff --git a/src/plugins/value/domains/multidim/multidim_domain.ml b/src/plugins/value/domains/multidim/multidim_domain.ml index 1f94290c18fe920d05405b03a7cf2aa062fbbd9d..806c5a95ba9f3925b2e302a363241cb3bcb8cfa8 100644 --- a/src/plugins/value/domains/multidim/multidim_domain.ml +++ b/src/plugins/value/domains/multidim/multidim_domain.ml @@ -689,12 +689,10 @@ struct | `Value loc -> let update value' = let v = Value_or_Uninitialized.narrow value value' in - (* The value can legitimately be bottom on escaping variables (not - tracked by the multidim domain), or on empty structs or unions. - In these cases, do not reduce the state to bottom. *) - if Value_or_Uninitialized.is_bottom v - && not record.value.escaping - && not (Int_Base.is_zero (Bit_utils.sizeof_lval lv)) + (* The value can legitimately be bottom on escaping variables, + which are not tracked by the multidim domain. + In this case, do not reduce the state to bottom. *) + if Value_or_Uninitialized.is_bottom v && not record.value.escaping then `Bottom else `Value v in