let check_non_overlapping state lvs1 lvs2 =
    List.iter
      (fun lv1 ->
         List.iter
           (fun lv2 ->
              let zone1 =
                Locations.valid_enumerate_bits
                  (lval_to_loc ~with_alarms:CilE.warn_none_mode state lv1)
              in
              let zone2 =
                Locations.valid_enumerate_bits
                  (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 lv1, Cil.mkAddrOf lv2));
                CilE.warn_separated CilE.warn_all_mode
              end) lvs2) lvs1