Re: Alignment Guarantees?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux