summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asmcomp/closure.ml1
-rwxr-xr-xboot/ocamlcbin2285786 -> 2272680 bytes
-rw-r--r--bytecomp/lambda.ml1
-rw-r--r--bytecomp/lambda.mli1
-rw-r--r--bytecomp/printlambda.ml1
-rw-r--r--bytecomp/symtable.ml1
-rwxr-xr-xmiddle_end/closure_conversion.ml1
-rw-r--r--tools/dumpobj.ml1
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
index 9ea96cac5f..cc85fb41ba 100755
--- a/boot/ocamlc
+++ b/boot/ocamlc
Binary files differ
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