summaryrefslogtreecommitdiffstats
path: root/byterun/mlvalues.h
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/mlvalues.h')
-rw-r--r--byterun/mlvalues.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/byterun/mlvalues.h b/byterun/mlvalues.h
index 113590b0e..4d8a690ba 100644
--- a/byterun/mlvalues.h
+++ b/byterun/mlvalues.h
@@ -278,10 +278,12 @@ CAMLextern header_t caml_atom_table[];
#define Is_atom(v) ((v) >= Atom(0) && (v) <= Atom(255))
#else
CAMLextern char * caml_static_data_start, * caml_static_data_end;
+CAMLextern int caml_is_in_data(void *);
#define Is_atom(v) \
- ((((char *)(v) >= caml_static_data_start \
- && (char *)(v) < caml_static_data_end) \
- || ((v) >= Atom(0) && (v) <= Atom(255))))
+ ( ( (char *)(v) >= caml_static_data_start \
+ &&(char *)(v) < caml_static_data_end ) \
+ || ((v) >= Atom(0) && (v) <= Atom(255)) \
+ || (caml_is_in_data((void *)v)) )
#endif
/* Booleans are integers 0 or 1 */