@ -353,12 +353,12 @@ module AddressAttributes = struct
let check_valid_isl access_trace addr ? ( null_noop = false ) astate =
let check_valid_isl access_trace addr ? ( null_noop = false ) astate =
L . d_printfln " *****check_valid_isl: addr*** %a@ \n " AbstractValue . pp addr ;
L . d_printfln " *****check_valid_isl: addr*** %a@ \n " AbstractValue . pp addr ;
match BaseAddressAttributes . get_invalid addr ( astate . post :> BaseDomain . t ) . attrs with
match BaseAddressAttributes . get_invalid addr ( astate . post :> BaseDomain . t ) . attrs with
| None -> (
| None ->
match
if
BaseAddressAttributes . get _must_be_valid_or_allocated_isl addr
BaseAddressAttributes . is _must_be_valid_or_allocated_isl addr
( astate . post :> BaseDomain . t ) . attrs
( astate . post :> BaseDomain . t ) . attrs
wi th
then [ Ok astate ]
| None , reason ->
else
let null_astates =
let null_astates =
if PathCondition . is_known_not_equal_zero astate . path_condition addr then []
if PathCondition . is_known_not_equal_zero astate . path_condition addr then []
else
else
@ -374,7 +374,7 @@ module AddressAttributes = struct
else
else
let valid_astate =
let valid_astate =
let abdalloc = Attribute . ISLAbduced access_trace in
let abdalloc = Attribute . ISLAbduced access_trace in
let valid_attr = Attribute . MustBeValid ( access_trace , reason ) in
let valid_attr = Attribute . MustBeValid ( access_trace , None ) in
add_one addr abdalloc astate | > abduce_attribute addr valid_attr
add_one addr abdalloc astate | > abduce_attribute addr valid_attr
| > abduce_attribute addr abdalloc
| > abduce_attribute addr abdalloc
in
in
@ -386,8 +386,6 @@ module AddressAttributes = struct
[ Ok valid_astate ; Error ( ` ISLError invalid_free ) ]
[ Ok valid_astate ; Error ( ` ISLError invalid_free ) ]
in
in
not_null_astates @ null_astates
not_null_astates @ null_astates
| Some _ , _ ->
[ Ok astate ] )
| Some ( invalidation , invalidation_trace ) ->
| Some ( invalidation , invalidation_trace ) ->
[ Error ( ` InvalidAccess ( invalidation , invalidation_trace , astate ) ) ]
[ Error ( ` InvalidAccess ( invalidation , invalidation_trace , astate ) ) ]
end
end