diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/aux_file.ml | 2 | ||||
-rw-r--r-- | lib/cWarnings.ml | 4 | ||||
-rw-r--r-- | lib/cWarnings.mli | 2 | ||||
-rw-r--r-- | lib/loc.ml | 5 | ||||
-rw-r--r-- | lib/loc.mli | 4 |
5 files changed, 10 insertions, 7 deletions
diff --git a/lib/aux_file.ml b/lib/aux_file.ml index 7d9c528e7..0f9476605 100644 --- a/lib/aux_file.ml +++ b/lib/aux_file.ml @@ -55,7 +55,7 @@ let record_in_aux_at ?loc key v = match loc with | Some loc -> let i, j = Loc.unloc loc in Printf.fprintf oc "%d %d %s %S\n" i j key v - | None -> Printf.fprintf oc "--- %s %S\n" key v + | None -> Printf.fprintf oc "0 0 %s %S\n" key v ) !oc let current_loc : Loc.t option ref = ref None diff --git a/lib/cWarnings.ml b/lib/cWarnings.ml index 92c86eaea..fda25a0a6 100644 --- a/lib/cWarnings.ml +++ b/lib/cWarnings.ml @@ -22,11 +22,8 @@ type t = { let warnings : (string, t) Hashtbl.t = Hashtbl.create 97 let categories : (string, string list) Hashtbl.t = Hashtbl.create 97 -let current_loc = ref None let flags = ref "" -let set_current_loc loc = current_loc := loc - let get_flags () = !flags let add_warning_in_category ~name ~category = @@ -170,7 +167,6 @@ let create ~name ~category ?(default=Enabled) pp = set_flags !flags; fun ?loc x -> let w = Hashtbl.find warnings name in - let loc = Option.append loc !current_loc in match w.status with | Disabled -> () | AsError -> CErrors.user_err ?loc (pp x) diff --git a/lib/cWarnings.mli b/lib/cWarnings.mli index fa96b18c8..f97a53c4d 100644 --- a/lib/cWarnings.mli +++ b/lib/cWarnings.mli @@ -10,8 +10,6 @@ type status = Disabled | Enabled | AsError -val set_current_loc : Loc.t option -> unit - val create : name:string -> category:string -> ?default:status -> ('a -> Pp.t) -> ?loc:Loc.t -> 'a -> unit diff --git a/lib/loc.ml b/lib/loc.ml index 6f5283aab..1a09091bf 100644 --- a/lib/loc.ml +++ b/lib/loc.ml @@ -62,6 +62,11 @@ let merge_opt l1 l2 = match l1, l2 with | None, Some l -> Some l | Some l1, Some l2 -> Some (merge l1 l2) +let finer l1 l2 = match l1, l2 with + | None, _ -> false + | Some l , None -> true + | Some l1, Some l2 -> l1.fname = l2.fname && merge l1 l2 = l2 + let unloc loc = (loc.bp, loc.ep) let shift_loc kb kp loc = { loc with bp = loc.bp + kb ; ep = loc.ep + kp } diff --git a/lib/loc.mli b/lib/loc.mli index 813c45fbb..23df1ebd9 100644 --- a/lib/loc.mli +++ b/lib/loc.mli @@ -42,6 +42,10 @@ val merge : t -> t -> t val merge_opt : t option -> t option -> t option (** Merge locations, usually generating the largest possible span *) +val finer : t option -> t option -> bool +(** Answers [true] when the first location is more defined, or, when + both defined, included in the second one *) + val shift_loc : int -> int -> t -> t (** [shift_loc loc n p] shifts the beginning of location by [n] and the end by [p]; it is assumed that the shifts do not change the |