From c0f6909f7ecee906ea21c9bbba903e105bb7e711 Mon Sep 17 00:00:00 2001 From: Jed Davis Date: Sun, 24 Feb 2013 17:34:32 -0800 Subject: [PATCH] base::iter_structural_ty: structs and records --- src/librustc/middle/trans/base.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index ca934d755b4..ec4dd12498a 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -676,9 +676,10 @@ pub fn iter_structural_ty(cx: block, av: ValueRef, t: ty::t, let mut cx = cx; match /*bad*/copy ty::get(t).sty { ty::ty_rec(*) | ty::ty_struct(*) => { - do expr::with_field_tys(cx.tcx(), t, None) |_has_dtor, field_tys| { + let repr = adt::represent_type(cx.ccx(), t); + do expr::with_field_tys(cx.tcx(), t, None) |discr, field_tys| { for vec::eachi(field_tys) |i, field_ty| { - let llfld_a = GEPi(cx, av, struct_field(i)); + let llfld_a = adt::trans_GEP(cx, &repr, av, discr, i); cx = f(cx, llfld_a, field_ty.mt.ty); } }