diff options
Diffstat (limited to 'byterun/compare.c')
-rw-r--r-- | byterun/compare.c | 9 |
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); |