From fcd195bb4ca47d4b3c7dfd3e6c14dc5771e139cc Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 9 Mar 2011 11:33:44 -0800 Subject: rustc: Don't try to load dynamically-sized types when translating tag variants. Add a test case for this. --- src/comp/middle/trans.rs | 3 ++- src/test/run-pass/simple-generic-tag.rs | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/test/run-pass/simple-generic-tag.rs diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 0b513744..2ad33968 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -4920,7 +4920,8 @@ fn trans_tag_variant(@crate_ctxt cx, ast.def_id tag_id, auto arg_ty = arg_tys.(i).ty; auto llargval; - if (ty.type_is_structural(arg_ty)) { + if (ty.type_is_structural(arg_ty) || + ty.type_has_dynamic_size(arg_ty)) { llargval = llargptr; } else { llargval = bcx.build.Load(llargptr); diff --git a/src/test/run-pass/simple-generic-tag.rs b/src/test/run-pass/simple-generic-tag.rs new file mode 100644 index 00000000..ba6a3242 --- /dev/null +++ b/src/test/run-pass/simple-generic-tag.rs @@ -0,0 +1,7 @@ +tag clam[T] { + a(T); +} + +fn main() { +} + -- cgit v1.2.3