aboutsummaryrefslogtreecommitdiff
path: root/src/boot/me
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2010-12-21 15:58:17 -0800
committerPatrick Walton <[email protected]>2010-12-21 15:59:14 -0800
commitd7cbeba731716f176f4c116cfe92f3ec246e1396 (patch)
tree6f4693f2689e63f5beeb46cc0b6854833ea4aad8 /src/boot/me
parentAdd std.sort, with a simple mergesort. (diff)
downloadrust-d7cbeba731716f176f4c116cfe92f3ec246e1396.tar.xz
rust-d7cbeba731716f176f4c116cfe92f3ec246e1396.zip
rustboot: Only bottom out at opaque IL types after finding two cycles. DON'T ASK ME WHY THIS WORKS.
Diffstat (limited to 'src/boot/me')
-rw-r--r--src/boot/me/semant.ml2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/boot/me/semant.ml b/src/boot/me/semant.ml
index cea0b479..019cd13e 100644
--- a/src/boot/me/semant.ml
+++ b/src/boot/me/semant.ml
@@ -2425,7 +2425,7 @@ and referent_type
Some parent_tags
when boxed
&& parent_tags <> []
- && List.mem ttag parent_tags
+ && (list_count ttag parent_tags) > 1
&& is_back_edge ttag (List.hd parent_tags) ->
Il.StructTy [| word; Il.OpaqueTy |]
| _ -> tag ttag