From f28a9d8f5203fc01c870ec15b44f8156ebc63168 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 7 Apr 2011 18:00:29 -0700 Subject: rustc: Pointer cast when crossing a box boundary for statically-sized elements in trans_index() --- src/comp/middle/trans.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index a8e75176..28b22ea2 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -3892,6 +3892,10 @@ fn trans_index(@block_ctxt cx, &ast.span sp, @ast.expr base, elt = next_cx.build.GEP(body, vec(C_int(0), scaled_ix)); } else { elt = next_cx.build.GEP(body, vec(C_int(0), ix_val)); + + // We're crossing a box boundary here, so we may need to pointer cast. + auto llunitty = type_of(next_cx.fcx.ccx, unit_ty); + elt = next_cx.build.PointerCast(elt, T_ptr(llunitty)); } ret lval_mem(next_cx, elt); -- cgit v1.2.3