aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-06-27 13:53:23 -0700
committerGraydon Hoare <[email protected]>2010-06-27 13:53:23 -0700
commit7045526a3eb1d0818aeea94968f153ee349b7935 (patch)
treef4f3fe5402a4fc855689a6f85e0be98a6f00ffee /src
parentEncode tag and iso types at dwarf level. Can't decode them yet. (diff)
downloadrust-7045526a3eb1d0818aeea94968f153ee349b7935.tar.xz
rust-7045526a3eb1d0818aeea94968f153ee349b7935.zip
Change slot_mem_ctrl to classify vec[state] as GC mem. Breaking / XFAILing mutable-vec-drop.rs test.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile1
-rw-r--r--src/boot/me/transutil.ml5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/Makefile b/src/Makefile
index ae2a3c92..dce11c64 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -321,6 +321,7 @@ TEST_XFAILS_X86 := test/run-pass/mlist-cycle.rs \
test/run-pass/vec-slice.rs \
test/run-pass/generic-fn-infer.rs \
test/run-pass/generic-recursive-tag.rs \
+ test/run-pass/mutable-vec-drop.rs \
test/run-pass/bind-obj-ctor.rs \
test/run-pass/task-comm.rs \
test/compile-fail/rec-missing-fields.rs \
diff --git a/src/boot/me/transutil.ml b/src/boot/me/transutil.ml
index 7cfe89d7..cb867fef 100644
--- a/src/boot/me/transutil.ml
+++ b/src/boot/me/transutil.ml
@@ -118,8 +118,11 @@ let slot_mem_ctrl (slot:Ast.slot) : mem_ctrl =
Ast.TY_port _
| Ast.TY_chan _
| Ast.TY_task
- | Ast.TY_vec _
| Ast.TY_str -> MEM_rc_opaque
+ | Ast.TY_vec _ ->
+ if type_has_state ty
+ then MEM_gc
+ else MEM_rc_opaque
| _ ->
match slot.Ast.slot_mode with
Ast.MODE_exterior _ when type_is_structured ty ->