alias question

Andrew Haley aph@redhat.com
Fri Feb 18 10:40:00 GMT 2011


On 02/18/2011 10:02 AM, xorbe 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.
>
> However, what I said is walking the fine line of following
> that rule.  I have several overlapping read-only types, BUT
> they are only written as char.  Hence, they'll always resolve
> to the correct value.  I haven't been able to construct any
> code which fails to work yet.  If a char write precedes a
> type's access to the same location, then it will be seen.
> As far as I can tell, that basic rule is followed here!

I think not, but you haven't described what you're doing with
sufficient precision for us to be able to tell for sure.

Andrew.



More information about the Gcc-help mailing list