summaryrefslogtreecommitdiffstats
path: root/byterun/compare.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/compare.c')
-rw-r--r--byterun/compare.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/byterun/compare.c b/byterun/compare.c
index 720940fbc..fa4b092df 100644
--- a/byterun/compare.c
+++ b/byterun/compare.c
@@ -163,7 +163,10 @@ static long compare_val(value v1, value v2)
break;
}
case Custom_tag: {
- int res = Custom_ops_val(v1)->compare(v1, v2);
+ int res;
+ int (*compare)(value v1, value v2) = Custom_ops_val(v1)->compare;
+ if (compare == NULL) failwith("equal: abstract value");
+ res = Custom_ops_val(v1)->compare(v1, v2);
if (res != 0) return res;
break;
}