let check_non_overlapping state lvs1 lvs2 =
List.iter
(fun lv1 ->
List.iter
(fun lv2 ->
let zone1 =
Locations.valid_enumerate_bits ~for_writing:false
(lval_to_loc ~with_alarms:CilE.warn_none_mode state lv1)
in
let zone2 =
Locations.valid_enumerate_bits ~for_writing:false
(lval_to_loc ~with_alarms:CilE.warn_none_mode state lv2)
in
if Locations.Zone.intersects zone1 zone2
then begin
CilE.set_syntactic_context
(CilE.SySep
(Cil.mkAddrOf ~loc:(CurrentLoc.get ()) lv1,
Cil.mkAddrOf ~loc:(CurrentLoc.get ()) lv2));
CilE.warn_separated warn_all_mode
end)
lvs2)
lvs1