summaryrefslogtreecommitdiff
path: root/src/codegen/struct_layout.rs
diff options
context:
space:
mode:
authorFlier Lu <flier.lu@gmail.com>2017-02-08 22:08:38 +0800
committerFlier Lu <flier.lu@gmail.com>2017-02-08 23:04:44 +0800
commite08072a1c9343c9c513e059a8a31ee2d1af129a9 (patch)
treed6a30e66d8ed288ed82b422f0132da5fe850d59a /src/codegen/struct_layout.rs
parent8264afa875d686688680123859f8820e19c8028c (diff)
check layout align before padding bytes
Diffstat (limited to 'src/codegen/struct_layout.rs')
-rw-r--r--src/codegen/struct_layout.rs5
1 files changed, 4 insertions, 1 deletions
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;