$NetBSD: patch-yd,v 1.1.1.1 2009/10/28 06:13:40 dholland Exp $

Fix integer types for modern ocaml.

--- Pict/copt.ml.orig	2009-10-27 20:46:49.000000000 -0400
+++ Pict/copt.ml	2009-10-27 21:17:12.000000000 -0400
@@ -23,10 +23,10 @@ let rec impureExp = function
   OFFSET(m,e,_) -> m or impureExp e
 | DEREF(_,_) -> true
 | CCODE(ci,_,l) ->
-    ci.Ccode.reader || ci.Ccode.writer || ci.Ccode.alloc > 0 ||
+    ci.Ccode.reader || ci.Ccode.writer || Int32.to_int(ci.Ccode.alloc) > 0 ||
     List.exists impureExp l
 | CCALL(ci,_,l) ->
-    ci.Ccode.reader || ci.Ccode.writer || ci.Ccode.alloc > 0 ||
+    ci.Ccode.reader || ci.Ccode.writer || Int32.to_int(ci.Ccode.alloc) > 0 ||
     List.exists impureExp l
 | _ -> false
 
@@ -99,17 +99,17 @@ and inlineExp = function
 | TAG(x,i) as e ->
     (match lookupInfo x with
        VAR v -> TAG(v,i)
-     | INDEX(v,INT j) -> TAG(v,i+j)
+     | INDEX(v,INT j) -> TAG(v,i+(Int32.to_int j)) (* ? *)
      | _ -> e)
 | INDEX(x,INT i) as e ->
     (match lookupInfo x with
        VAR v -> INDEX(v,INT i)
-     | INDEX(v,INT j) -> INDEX(v,INT(i+j))
+     | INDEX(v,INT j) -> INDEX(v,INT(Int32.add i j))
      | _ -> e)
 | DEREF(x,i) as e ->
     (match lookupInfo x with
        VAR v -> DEREF(v,i)
-     | INDEX(v,INT j) -> DEREF(v,i+j)
+     | INDEX(v,INT j) -> DEREF(v,i+(Int32.to_int j)) (* ? *)
      | _ -> e)
 | OFFSET(m,e,i) ->
     (match inlineExp e with
@@ -144,7 +144,7 @@ let optimiseDecl d l = match d with
 | EXTERN(x) -> if !(Hashtbl.find externUses x) > 0 then d :: l else l
 | BLOCK(x,v,free,endq,i,c) ->
   Hashtbl.clear uses; scan c;
-  if i > 0 then (addUsage free; addUsage endq);
+  if (Int32.compare i Int32.zero) > 0 then (addUsage free; addUsage endq);
   BLOCK(x,List.fold_left optimiseVar [] v,free,endq,i,optimise c) :: l
 
 let next = ref 0
