diff options
| author | Björn Steinbrink <bsteinbr@gmail.com> | 2015-08-22 17:07:37 +0200 |
|---|---|---|
| committer | Björn Steinbrink <bsteinbr@gmail.com> | 2015-08-22 19:24:00 +0200 |
| commit | e75abd343896967c1d26615c874331521bbe7e5a (patch) | |
| tree | b9998aa642afa89d7243b8c3376d598cb56d4dd2 | |
| parent | 3a407b6c4eea5d7bff34abf42518bcb8379c0cfb (diff) | |
| download | rust-e75abd343896967c1d26615c874331521bbe7e5a.tar.gz rust-e75abd343896967c1d26615c874331521bbe7e5a.zip | |
Don't emit memcpy's for zero-sized types
| -rw-r--r-- | src/librustc_trans/trans/base.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index 6be2bb08464..78bbe0d4ebc 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -956,6 +956,11 @@ pub fn memcpy_ty<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, t: Ty<'tcx>) { let _icx = push_ctxt("memcpy_ty"); let ccx = bcx.ccx(); + + if type_is_zero_size(ccx, t) { + return; + } + if t.is_structural() { let llty = type_of::type_of(ccx, t); let llsz = llsize_of(ccx, llty); |
