summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/private/gc_pmark.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/private/gc_pmark.h b/include/private/gc_pmark.h
index 15e79860..ad29f3d8 100644
--- a/include/private/gc_pmark.h
+++ b/include/private/gc_pmark.h
@@ -225,7 +225,8 @@ GC_INLINE mse * GC_push_obj(ptr_t obj, hdr * hhdr, mse * mark_stack_top,
# define TRACE(source, cmd) \
if (GC_trace_addr != 0 && (ptr_t)(source) == GC_trace_addr) cmd
# define TRACE_TARGET(target, cmd) \
- if (GC_trace_addr != 0 && (target) == *(ptr_t *)GC_trace_addr) cmd
+ if (GC_trace_addr != NULL && GC_is_heap_ptr(GC_trace_addr) \
+ && (target) == *(ptr_t *)GC_trace_addr) cmd
#else
# define TRACE(source, cmd)
# define TRACE_TARGET(source, cmd)