diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index 4b93f9f2a819b..bbed1bf7a80bb 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -979,7 +979,9 @@ pub fn memcpy_ty<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, t: Ty<'tcx>) { let _icx = push_ctxt("memcpy_ty"); let ccx = bcx.ccx(); - if t.is_structural() { + if common::type_is_fat_ptr(bcx.tcx(), t) { + expr::copy_fat_ptr(bcx, src, dst, t); + } else if t.is_structural() { let llty = type_of::type_of(ccx, t); let llsz = llsize_of(ccx, llty); let llalign = type_of::align_of(ccx, t);