Jeffrey Walton <noloader@xxxxxxxxx> writes: > Does C/C++ or GCC offer any alignment guarantees? I'm looking at some > code for ARM that does not look quite right. > > void foo(__u8 my_arr[64]) > { > ... > > for(int i = 0; i < 16; i++) > (__u32*)my_arr[i] = ... > } > > Casting a u8[] to something else has caused a lot of intermittent > problems on Windows Mobile (ARM) in the past. To address the code, there is no guarantee that a __u8 is aligned correctly for a __u32 (assuming those types have their implied meaning). And note that if __u8 is not "char", "signed char", or "unsigned char", then this would be an aliasing violation. Ian