This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: subreg question
- From: Dale Johannesen <dalej at apple dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: Dale Johannesen <dalej at apple dot com>, Aldy Hernandez <aldyh at redhat dot com>, gcc at gcc dot gnu dot org
- Date: Thu, 13 Dec 2001 13:04:01 -0800
- Subject: Re: subreg question
On Thursday, December 13, 2001, at 12:43 PM, Daniel Jacobowitz wrote:
>>>>
>>>> I don't see why not. (C89) 3.3.4 says the cast might produce an
>>>> invalid
>>>> pointer if it's not aligned properly, which is not the case here.
>>>> Other than that I don't find any relevant restriction in the standard.
>>>> What did you have in mind?
>>>> (FWIW, gcc doesn't warn about this even with -pedantic.)
>>>
>>> It's not an invalid pointer. It doesn't alias with Z, though.
>>
>> Why not?
>
> The C standard's aliasing rules. *((float *)&z) is an object of type
> float; double is a different type than float; z is an object of type
> double; *((float *)&z) and z can not alias.
Can you point me to someplace in the standard that says this?