summaryrefslogtreecommitdiffstats
path: root/byterun/compare.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/compare.c')
-rw-r--r--byterun/compare.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/byterun/compare.c b/byterun/compare.c
index 3cf66ba5f..e3416877e 100644
--- a/byterun/compare.c
+++ b/byterun/compare.c
@@ -17,9 +17,11 @@ static long compare_val(v1, v2)
if (Is_long(v1) || Is_long(v2)) return Long_val(v1) - Long_val(v2);
/* If one of the objects is outside the heap (but is not an atom),
use address comparison. */
- if ((!Is_atom(v1) && !Is_young(v1) && !Is_in_heap(v1)) ||
- (!Is_atom(v2) && !Is_young(v2) && !Is_in_heap(v2)))
- return v1 - v2;
+ /* Does not work with the native-code generator !
+ Removed, but need to find something */
+ /* if ((!Is_atom(v1) && !Is_young(v1) && !Is_in_heap(v1)) ||
+ (!Is_atom(v2) && !Is_young(v2) && !Is_in_heap(v2)))
+ return v1 - v2; */
t1 = Tag_val(v1);
t2 = Tag_val(v2);
if (t1 != t2) return (long)t1 - (long)t2;
@@ -46,6 +48,7 @@ static long compare_val(v1, v2)
case Final_tag:
invalid_argument("equal: abstract value");
case Closure_tag:
+ case Infix_tag:
invalid_argument("equal: functional value");
default: {
mlsize_t sz1 = Wosize_val(v1);