diff options
Diffstat (limited to 'byterun/interp.c')
-rw-r--r-- | byterun/interp.c | 4 |
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 |