diff options
Diffstat (limited to 'src/librustc/ty/layout.rs')
| -rw-r--r-- | src/librustc/ty/layout.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/librustc/ty/layout.rs b/src/librustc/ty/layout.rs index 4d74e5eed59..d905592347f 100644 --- a/src/librustc/ty/layout.rs +++ b/src/librustc/ty/layout.rs @@ -1541,10 +1541,10 @@ impl<'a, 'tcx> Layout { discr_range: (min as u64)..=(max as u64), variants }, - fields: FieldPlacement::Arbitrary { - offsets: vec![Size::from_bytes(0)], - memory_index: vec![0] - }, + // FIXME(eddyb): using `FieldPlacement::Arbitrary` here results + // in lost optimizations, specifically around allocations, see + // `test/codegen/{alloc-optimisation,vec-optimizes-away}.rs`. + fields: FieldPlacement::Union(1), abi: if discr.size(dl) == size { Abi::Scalar(discr) } else { |
