diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp/middle/trans.rs | 3 | ||||
| -rw-r--r-- | src/test/run-pass/simple-generic-tag.rs | 7 |
2 files changed, 9 insertions, 1 deletions
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() { +} + |