diff options
-rw-r--r-- | asmcomp/closure.ml | 1 | ||||
-rwxr-xr-x | boot/ocamlc | bin | 2285786 -> 2272680 bytes | |||
-rw-r--r-- | bytecomp/lambda.ml | 1 | ||||
-rw-r--r-- | bytecomp/lambda.mli | 1 | ||||
-rw-r--r-- | bytecomp/printlambda.ml | 1 | ||||
-rw-r--r-- | bytecomp/symtable.ml | 1 | ||||
-rwxr-xr-x | middle_end/closure_conversion.ml | 1 | ||||
-rw-r--r-- | tools/dumpobj.ml | 1 |
8 files changed, 7 insertions, 0 deletions
diff --git a/asmcomp/closure.ml b/asmcomp/closure.ml index 54bf71e87b..d5833d8cc8 100644 --- a/asmcomp/closure.ml +++ b/asmcomp/closure.ml @@ -831,6 +831,7 @@ let rec close fenv cenv = function let rec transl = function | Const_base(Const_int n) -> Uconst_int n | Const_base(Const_char c) -> Uconst_int (Char.code c) + | Const_pointer _ -> assert false | Const_block (tag, fields) -> str (Uconst_block (tag, List.map transl fields)) | Const_float_array sl -> diff --git a/boot/ocamlc b/boot/ocamlc Binary files differindex 9ea96cac5f..cc85fb41ba 100755 --- a/boot/ocamlc +++ b/boot/ocamlc diff --git a/bytecomp/lambda.ml b/bytecomp/lambda.ml index 39bf8a818e..01cbcfebaa 100644 --- a/bytecomp/lambda.ml +++ b/bytecomp/lambda.ml @@ -192,6 +192,7 @@ and raise_kind = type structured_constant = Const_base of constant + | Const_pointer of int | Const_block of int * structured_constant list | Const_float_array of string list | Const_immstring of string diff --git a/bytecomp/lambda.mli b/bytecomp/lambda.mli index f17d72b311..a59d4412f8 100644 --- a/bytecomp/lambda.mli +++ b/bytecomp/lambda.mli @@ -200,6 +200,7 @@ and raise_kind = type structured_constant = Const_base of constant + | Const_pointer of int | Const_block of int * structured_constant list | Const_float_array of string list | Const_immstring of string diff --git a/bytecomp/printlambda.ml b/bytecomp/printlambda.ml index baff905347..c85d3f0ce2 100644 --- a/bytecomp/printlambda.ml +++ b/bytecomp/printlambda.ml @@ -29,6 +29,7 @@ let rec struct_const ppf = function | Const_base(Const_int32 n) -> fprintf ppf "%lil" n | Const_base(Const_int64 n) -> fprintf ppf "%LiL" n | Const_base(Const_nativeint n) -> fprintf ppf "%nin" n + | Const_pointer n -> fprintf ppf "%ia" n | Const_block(tag, []) -> fprintf ppf "[%i]" tag | Const_block(tag, sc1::scl) -> diff --git a/bytecomp/symtable.ml b/bytecomp/symtable.ml index f4ba8f01eb..3af60fb043 100644 --- a/bytecomp/symtable.ml +++ b/bytecomp/symtable.ml @@ -210,6 +210,7 @@ let rec transl_const = function | Const_base(Const_int32 i) -> Obj.repr i | Const_base(Const_int64 i) -> Obj.repr i | Const_base(Const_nativeint i) -> Obj.repr i + | Const_pointer i -> Obj.repr i | Const_immstring s -> Obj.repr s | Const_block(tag, fields) -> let block = Obj.new_block tag (List.length fields) in diff --git a/middle_end/closure_conversion.ml b/middle_end/closure_conversion.ml index 2a743c54c4..fdc5dbc4ec 100755 --- a/middle_end/closure_conversion.ml +++ b/middle_end/closure_conversion.ml @@ -134,6 +134,7 @@ let rec declare_const t (const : Lambda.structured_constant) register_const t (Allocated_const (Int64 c)) "int64" | Const_base (Const_nativeint c) -> register_const t (Allocated_const (Nativeint c)) "nativeint" + | Const_pointer _ -> assert false | Const_immstring c -> register_const t (Allocated_const (Immutable_string c)) "immstring" | Const_float_array c -> diff --git a/tools/dumpobj.ml b/tools/dumpobj.ml index e754bceaca..5d2e43aa9b 100644 --- a/tools/dumpobj.ml +++ b/tools/dumpobj.ml @@ -92,6 +92,7 @@ let rec print_struct_const = function | Const_base(Const_int32 i) -> printf "%ldl" i | Const_base(Const_nativeint i) -> printf "%ndn" i | Const_base(Const_int64 i) -> printf "%LdL" i + | Const_pointer n -> printf "%da" n | Const_block(tag, args) -> printf "<%d>" tag; begin match args with |