summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1999-05-15 15:07:12 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1999-05-15 15:07:12 +0000
commitfa8f7a7f3e23a3fe2e4b7c8ff3979e7d37bfd95c (patch)
tree415a5be34cefc324e3c6b86c268c13550a011262
parent0370b63cf71f29b690dcefbf97a9ad5304b60c01 (diff)
Ajout d'un volatile pour contourner un probleme de cc / Digital Unix
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2364 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--byterun/interp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/byterun/interp.c b/byterun/interp.c
index 82c3510a8..486d128b4 100644
--- a/byterun/interp.c
+++ b/byterun/interp.c
@@ -170,7 +170,9 @@ value interprete(code_t prog, asize_t prog_size)
long extra_args;
struct longjmp_buffer * initial_external_raise;
int initial_sp_offset;
- struct caml__roots_block *initial_local_roots;
+ /* volatile prevents collapsing initial_local_roots with another
+ local variable, like Digital Unix 4.0 C compiler does (wrongly) */
+ struct caml__roots_block * volatile initial_local_roots;
struct longjmp_buffer raise_buf;
value * modify_dest, modify_newval;
#ifndef THREADED_CODE