From e08072a1c9343c9c513e059a8a31ee2d1af129a9 Mon Sep 17 00:00:00 2001 From: Flier Lu Date: Wed, 8 Feb 2017 22:08:38 +0800 Subject: check layout align before padding bytes --- src/codegen/struct_layout.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/codegen/struct_layout.rs') diff --git a/src/codegen/struct_layout.rs b/src/codegen/struct_layout.rs index 98640570..f8a88bc2 100644 --- a/src/codegen/struct_layout.rs +++ b/src/codegen/struct_layout.rs @@ -89,9 +89,12 @@ impl<'a, 'ctx> StructLayoutTracker<'a, 'ctx> { Some(offset) if offset / 8 > self.latest_offset => { (offset / 8 - self.latest_offset, true) } - _ => { + _ if field_layout.align != 0 => { (self.padding_bytes(field_layout), (self.latest_offset % field_layout.align) != 0) } + _ => { + (0, false) + } }; self.latest_offset += padding_bytes; -- cgit v1.2.3