Issue by edef1c
Thursday Sep 25, 2014 at 18:20 GMT
For earlier discussion, see rust-lang/rust#17537
This issue was labelled with: in the Rust repository
Currently, a C struct definition including an alignment hint (ALIGN(64)) cannot be translated to Rust.
Our inability to translate this makes some C ABIs impossible to adhere to, causing crashes and undefined behaviour.
The only way to hack around this is to prepend your struct with a zero-length array of a SIMD type.
We should have some kind of syntax for this. Perhaps #[align(64)]?
@eddyb proposed #[repr(align(64))], but I fear that complicates the repr attribute a bit much.
Thursday Sep 25, 2014 at 18:20 GMT
For earlier discussion, see rust-lang/rust#17537
This issue was labelled with: in the Rust repository
Currently, a C struct definition including an alignment hint (
ALIGN(64)) cannot be translated to Rust.Our inability to translate this makes some C ABIs impossible to adhere to, causing crashes and undefined behaviour.
The only way to hack around this is to prepend your struct with a zero-length array of a SIMD type.
We should have some kind of syntax for this. Perhaps
#[align(64)]?@eddyb proposed
#[repr(align(64))], but I fear that complicates thereprattribute a bit much.