X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=pa_bitstring.ml;h=63c280e55d61d73000b335dad3520cc3e76e7fbb;hb=8bc193ef86e8de305fd3bb87594421c5c60ddb85;hp=664e62dc342bc51d911df9bcf41f672ff248cbfe;hpb=1cd333c8aa3a51f02f36f97518006f502bfa4afa;p=ocaml-bitstring.git diff --git a/pa_bitstring.ml b/pa_bitstring.ml index 664e62d..63c280e 100644 --- a/pa_bitstring.ml +++ b/pa_bitstring.ml @@ -55,9 +55,16 @@ let rec expr_is_constant = function (match expr_is_constant a, expr_is_constant b with | Some a, Some b -> (* Integer binary operations. *) let ops = ["+", (+); "-", (-); "*", ( * ); "/", (/); - "land", (land); "lor", (lor); "lxor", (lxor); - "lsl", (lsl); "lsr", (lsr); "asr", (asr); - "mod", (mod)] in + (* NB: explicit fun .. -> is necessary here to work + * around a camlp4 bug in OCaml 3.10.0. + *) + "land", (fun a b -> a land b); + "lor", (fun a b -> a lor b); + "lxor", (fun a b -> a lxor b); + "lsl", (fun a b -> a lsl b); + "lsr", (fun a b -> a lsr b); + "asr", (fun a b -> a asr b); + "mod", (fun a b -> a mod b)] in (try Some ((List.assoc op ops) a b) with Not_found -> None) | _ -> None) | _ -> None