summaryrefslogtreecommitdiffstats
path: root/asmrun/signals_asm.c
diff options
context:
space:
mode:
Diffstat (limited to 'asmrun/signals_asm.c')
-rw-r--r--asmrun/signals_asm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/asmrun/signals_asm.c b/asmrun/signals_asm.c
index f33354051..187b6f0c5 100644
--- a/asmrun/signals_asm.c
+++ b/asmrun/signals_asm.c
@@ -46,10 +46,12 @@ extern void caml_win32_overflow_detection();
#endif
extern char * caml_code_area_start, * caml_code_area_end;
+CAMLextern int caml_is_in_code(void *);
#define In_code_area(pc) \
- ((char *)(pc) >= caml_code_area_start && \
- (char *)(pc) <= caml_code_area_end)
+ ( ((char *)(pc) >= caml_code_area_start && \
+ (char *)(pc) <= caml_code_area_end) \
+ || caml_is_in_code((void *)(pc)) )
/* This routine is the common entry point for garbage collection
and signal handling. It can trigger a callback to Caml code.