diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 0b513744bdee..2ad339685b20 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 000000000000..ba6a3242737c --- /dev/null +++ b/src/test/run-pass/simple-generic-tag.rs @@ -0,0 +1,7 @@ +tag clam[T] { + a(T); +} + +fn main() { +} +