@@ -43,10 +43,10 @@ module IntDomTupleImpl = struct
4343
4444 type 'b poly_pr = { fp : 'a . 'a m -> 'a -> 'b } [@@ unboxed] (* project *)
4545 type 'b poly_pr2 = { fp2 : 'a . 'a m2 -> 'a -> 'b } [@@ unboxed] (* project for functions that depend on int_t *)
46- type 'b poly2_pr = {f2p : 'a . 'a m -> ?no_ov: bool -> 'a -> 'a -> 'b } [@@ unboxed]
46+ type 'b poly2_pr = {f2p : 'a . 'a m -> 'a -> 'a -> 'b } [@@ unboxed]
4747 type poly1 = {f1 : 'a . 'a m -> 'a -> 'a } [@@ unboxed] (* needed b/c above 'b must be different from 'a *)
4848 type poly1_ovc = {f1_ovc : 'a . 'a m -> ?no_ov:bool -> 'a -> 'a * overflow_info } [@@ unboxed] (* needed b/c above 'b must be different from 'a *)
49- type poly2 = {f2 : 'a . 'a m -> ?no_ov: bool -> 'a -> 'a -> 'a } [@@ unboxed]
49+ type poly2 = {f2 : 'a . 'a m -> 'a -> 'a -> 'a } [@@ unboxed]
5050 type poly2_ovc = {f2_ovc : 'a . 'a m -> ?no_ov:bool -> 'a -> 'a -> 'a * overflow_info } [@@ unboxed]
5151 type 'b poly3 = { f3 : 'a . 'a m -> 'a option } [@@ unboxed] (* used for projection to given precision *)
5252 let create r x ((p1 , p2 , p3 , p4 , p5 , p6 ): int_precision ) =
@@ -90,8 +90,8 @@ module IntDomTupleImpl = struct
9090 create2_ovc ~suppress_ovwarn ik r x (int_precision_from_node_or_config () )
9191
9292
93- let opt_map2 f ? no_ov =
94- curry @@ function Some x , Some y -> Some (f ?no_ov x y) | _ -> None
93+ let opt_map2 f =
94+ curry @@ function Some x , Some y -> Some (f x y) | _ -> None
9595
9696 let to_list (a ,b ,c ,d ,e ,f ) = List. filter_map identity [a;b;c;d;e;f] (* contains only the values of activated domains *)
9797 let to_list_some x = List. filter_map identity @@ to_list x (* contains only the Some-values of activated domains *)
@@ -222,7 +222,7 @@ module IntDomTupleImpl = struct
222222
223223 let leq =
224224 for_all
225- %% map2p {f2p= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. leq)}
225+ %% map2p {f2p= (fun (type a ) (module I : SOverflow with type t = a ) -> I. leq)}
226226
227227 let flat f x = match to_list_some x with [] -> None | xs -> Some (f xs)
228228
@@ -324,10 +324,10 @@ module IntDomTupleImpl = struct
324324 let no_ov = check_ov ~op ik intv intv_set bf in
325325 let no_ov = no_ov || should_ignore_overflow ik in
326326 refine ik
327- ( opt_map2 (fun ? no_ov x y -> r.f2_ovc ?no_ov (module I1 ) x y |> fst) xa ya
327+ ( opt_map2 (fun x y -> r.f2_ovc (module I1 ) x y |> fst) xa ya (* TODO: why isn't no_ov passed? *)
328328 , BatOption. map fst intv
329- , opt_map2 (fun ? no_ov x y -> r.f2_ovc ?no_ov (module I3 ) x y |> fst) xc yc
330- , opt_map2 (fun ? no_ov x y -> r.f2_ovc ? no_ov (module I4 ) x y |> fst) ~no_ov: no_ov xd yd
329+ , opt_map2 (fun x y -> r.f2_ovc (module I3 ) x y |> fst) xc yc (* TODO: why isn't no_ov passed? *)
330+ , opt_map2 (fun x y -> r.f2_ovc ~ no_ov (module I4 ) x y |> fst) xd yd
331331 , BatOption. map fst intv_set
332332 , BatOption. map fst bf)
333333
@@ -419,16 +419,16 @@ module IntDomTupleImpl = struct
419419
420420 (* f2: binary ops *)
421421 let join ik =
422- map2 ~norefine: true ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. join ik)}
422+ map2 ~norefine: true ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) -> I. join ik)}
423423
424424 let meet ik =
425- map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. meet ik)}
425+ map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) -> I. meet ik)}
426426
427427 let widen ik =
428- map2 ~norefine: true ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. widen ik)}
428+ map2 ~norefine: true ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) -> I. widen ik)}
429429
430430 let narrow ik =
431- map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. narrow ik)}
431+ map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) -> I. narrow ik)}
432432
433433 let add ?no_ov ik =
434434 map2ovc ~op: (Binop PlusA ) ik
@@ -455,31 +455,31 @@ module IntDomTupleImpl = struct
455455 )}
456456
457457 let lt ik =
458- map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. lt ik)}
458+ map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) -> I. lt ik)}
459459
460460 let gt ik =
461- map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. gt ik)}
461+ map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) -> I. gt ik)}
462462
463463 let le ik =
464- map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. le ik)}
464+ map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) -> I. le ik)}
465465
466466 let ge ik =
467- map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. ge ik)}
467+ map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) -> I. ge ik)}
468468
469469 let eq ik =
470- map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. eq ik)}
470+ map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) -> I. eq ik)}
471471
472472 let ne ik =
473- map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. ne ik)}
473+ map2bool ik {f2p= (fun (type a ) (module I : SOverflow with type t = a ) -> I. ne ik)}
474474
475475 let logand ik =
476- map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. logand ik)}
476+ map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) -> I. logand ik)}
477477
478478 let logor ik =
479- map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. logor ik)}
479+ map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) -> I. logor ik)}
480480
481481 let logxor ik =
482- map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) ? no_ov -> I. logxor ik)}
482+ map2 ik {f2= (fun (type a ) (module I : SOverflow with type t = a ) -> I. logxor ik)}
483483
484484 let shift_left ik =
485485 map2ovc ~op: (Binop Shiftlt ) ik {f2_ovc= (fun (type a ) (module I : SOverflow with type t = a ) ?no_ov -> I. shift_left ik)}
0 commit comments