From 4d7a6709946a0c30e932c00405252b42e348eb64 Mon Sep 17 00:00:00 2001 From: Xavier Leroy Date: Tue, 13 Mar 2018 14:04:49 +0100 Subject: Print size argument of Init_space as Z not as int32 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Init_space has an argument of type Z and it can exceed the range of a 32-bit integer. Reported by Frédéric Besson. --- backend/PrintCminor.ml | 2 +- cfrontend/PrintCsyntax.ml | 2 +- exportclight/ExportClight.ml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/PrintCminor.ml b/backend/PrintCminor.ml index c5418d9d..f68c1267 100644 --- a/backend/PrintCminor.ml +++ b/backend/PrintCminor.ml @@ -327,7 +327,7 @@ let print_init_data p = function | Init_int64 i -> fprintf p "%LdLL" (camlint64_of_coqint i) | Init_float32 f -> fprintf p "float32 %.15F" (camlfloat_of_coqfloat f) | Init_float64 f -> fprintf p "%.15F" (camlfloat_of_coqfloat f) - | Init_space i -> fprintf p "[%ld]" (camlint_of_coqint i) + | Init_space i -> fprintf p "[%s]" (Z.to_string i) | Init_addrof(id,off) -> fprintf p "%ld(\"%s\")" (camlint_of_coqint off) (extern_atom id) let rec print_init_data_list p = function diff --git a/cfrontend/PrintCsyntax.ml b/cfrontend/PrintCsyntax.ml index 6e016cb3..3a44796c 100644 --- a/cfrontend/PrintCsyntax.ml +++ b/cfrontend/PrintCsyntax.ml @@ -466,7 +466,7 @@ let print_init p = function | Init_int64 n -> fprintf p "%LdLL" (camlint64_of_coqint n) | Init_float32 n -> fprintf p "%.15F" (camlfloat_of_coqfloat n) | Init_float64 n -> fprintf p "%.15F" (camlfloat_of_coqfloat n) - | Init_space n -> fprintf p "/* skip %ld */@ " (camlint_of_coqint n) + | Init_space n -> fprintf p "/* skip %s */@ " (Z.to_string n) | Init_addrof(symb, ofs) -> let ofs = camlint_of_coqint ofs in if ofs = 0l diff --git a/exportclight/ExportClight.ml b/exportclight/ExportClight.ml index 1b1402c3..1ae78c15 100644 --- a/exportclight/ExportClight.ml +++ b/exportclight/ExportClight.ml @@ -398,7 +398,7 @@ let init_data p = function | Init_int64 n -> fprintf p "Init_int64 %a" coqint64 n | Init_float32 n -> fprintf p "Init_float32 %a" coqsingle n | Init_float64 n -> fprintf p "Init_float64 %a" coqfloat n - | Init_space n -> fprintf p "Init_space %ld" (Z.to_int32 n) + | Init_space n -> fprintf p "Init_space %a" coqZ n | Init_addrof(id,ofs) -> fprintf p "Init_addrof %a %a" ident id coqptrofs ofs let print_variable p (id, v) = -- cgit