summaryrefslogtreecommitdiffstats
path: root/lib.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib.h b/lib.h
index 47cb414e..53268c78 100644
--- a/lib.h
+++ b/lib.h
@@ -507,7 +507,9 @@ INLINE val eq(val a, val b) { return ((a) == (b) ? t : nil); }
#define if3(a, b, c) ((a) ? (b) : (c))
-INLINE val or2(val a, val b) { return a ? a : b; }
+#define uses_or2 val or2_temp
+
+#define or2(a, b) ((or2_temp = (a)) ? or2_temp : (b))
#define or3(a, b, c) or2(a, or2(b, c))