summaryrefslogtreecommitdiff
path: root/src/codegen/mod.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2018-12-28 16:59:55 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2018-12-28 16:59:55 +0100
commitc7bf20061f35efc5bbe3534d8287c3a2c762c247 (patch)
tree994b3190d504254afdc6b041a2a9581cbc093f3d /src/codegen/mod.rs
parentfbb84204233dc6e17d7dc2260d19eeda0ef48b03 (diff)
codegen: Make zero-sized arrays affect alignment.
Fixes #684
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r--src/codegen/mod.rs11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 9a7bf897..f189fc69 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -3740,14 +3740,14 @@ mod utils {
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(
- ::#prefix::marker::PhantomData<T>);
+ ::#prefix::marker::PhantomData<T>, [T; 0]);
};
let incomplete_array_impl = quote! {
impl<T> __IncompleteArrayField<T> {
#[inline]
pub fn new() -> Self {
- __IncompleteArrayField(::#prefix::marker::PhantomData)
+ __IncompleteArrayField(::#prefix::marker::PhantomData, [])
}
#[inline]
@@ -3790,15 +3790,10 @@ mod utils {
}
};
- let incomplete_array_copy_impl = quote! {
- impl<T> ::#prefix::marker::Copy for __IncompleteArrayField<T> {}
- };
-
let items = vec![incomplete_array_decl,
incomplete_array_impl,
incomplete_array_debug_impl,
- incomplete_array_clone_impl,
- incomplete_array_copy_impl];
+ incomplete_array_clone_impl];
let old_items = mem::replace(result, items);
result.extend(old_items.into_iter());