summaryrefslogtreecommitdiffstats
path: root/lib.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib.h b/lib.h
index 61af0d45..6a3568db 100644
--- a/lib.h
+++ b/lib.h
@@ -229,13 +229,14 @@ union obj {
};
#if CONFIG_GEN_GC
-#define set(place, val) ((place) = (val))
-#define mut(obj)
-#define mpush(val, place) (push(val, &(place)))
-#else
+val gc_set(val *, val);
#define set(place, val) (gc_set(&(place), val))
#define mut(obj) (gc_mutated(obj));
#define mpush(val, place) (gc_push(val, &(place)))
+#else
+#define set(place, val) ((place) = (val))
+#define mut(obj)
+#define mpush(val, place) (push(val, &(place)))
#endif
INLINE cnum tag(val obj) { return ((cnum) obj) & TAG_MASK; }