Re: alias question

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

 



On 02/18/2011 10:40 AM, Segher Boessenkool wrote:
If I have a char array, and it's always written by the char array, can
it
be always reliably read by any combination of short/int/long pointers?

As I understand, the compiler will see byte writes for all types, so
readind shoulg be fine without violating any strict alias rules.  Just
can't write the array by any other type than char[] access.  Right?

No.  You can access anything only as its declared type or character
type;
an array of char thus can be accessed as char only.

Not quite: if you write an int to an array of char, you can read it
back again.  What matters is the effective type.

Of course, but the effective type is equal to the declared type (if there
is any) of the object,
so that write as int is undefined behaviour already!

No: character types are special.  See Section 6.5 re arrays of
character type and effective types.

Andrew.


[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