let try_or_bot f p = 
    try f p 
    with InvalidModel s ->
      Wp_parameters.warning "%a: %s" Cil.d_loc (Cil.CurrentLoc.get ()) s;
      if !use_bottom then begin
        Wp_parameters.warning "Invalid model %s -> try bottom@." W.model_name;
        Why_ops.pbot
      end else raise (InvalidModel "(don't use bottom)")