Fix empty case for OCaml 3.11 and above.
[ocaml-bitstring.git] / pa_bitstring.ml
index 71eabed..1414612 100644 (file)
@@ -666,9 +666,17 @@ let output_bitmatch _loc bs cases =
                  | 16 ->
                      <:expr< Bitstring.$lid:name$ $lid:data$ o >>
                  | 32 ->
-                     <:expr< Bitstring.$lid:name$ $lid:data$ o 0l >>
+                     <:expr<
+                       (* must allocate a new zero each time *)
+                       let zero = Int32.of_int 0 in
+                       Bitstring.$lid:name$ $lid:data$ o zero
+                     >>
                  | 64 ->
-                     <:expr< Bitstring.$lid:name$ $lid:data$ o 0L >>
+                     <:expr<
+                       (* must allocate a new zero each time *)
+                       let zero = Int64.of_int 0 in
+                       Bitstring.$lid:name$ $lid:data$ o zero
+                     >>
                  | _ -> assert false in
                <:expr<
                  (* Starting offset within the string. *)
@@ -1115,6 +1123,10 @@ EXTEND Gram
       fields = LIST0 patt_field SEP ";";
       "}" ->
        List.concat fields
+    | "{";
+      "_";
+      "}" ->
+       []
     ]
   ];