let make_well hidden_base state loc =
  let size = Bit_utils.max_bit_size () in
  let well = Cvalue.V.inject_top_origin
    Origin.Well
    (Cvalue.V.Top_Param.O.singleton hidden_base)
  in
  let well_loc =
    Locations.make_loc
      (Location_Bits.inject hidden_base Ival.zero)
      (Int_Base.inject size)
  in
  let state_with_well =
    Cvalue.Model.add_binding
      ~with_alarms:CilE.warn_none_mode
      ~exact:true
      state
      well_loc
      well
  in
  Cvalue.Model.add_binding
    ~with_alarms:CilE.warn_none_mode
    ~exact:true
    state_with_well
    loc
    well