This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: memcpy to an unaligned address
- From: "Dave Korn" <dave dot korn at artimi dot com>
- To: "'Shaun Jackman'" <sjackman at gmail dot com>,"'Richard Henderson'" <rth at redhat dot com>
- Cc: "'Ian Lance Taylor'" <ian at airs dot com>,"'Andrew Pinski'" <pinskia at physics dot uc dot edu>,"'Mike Stump'" <mrs at apple dot com>,"'Paul Koning'" <pkoning at equallogic dot com>,<gcc at sources dot redhat dot com>
- Date: Wed, 3 Aug 2005 19:19:15 +0100
- Subject: RE: memcpy to an unaligned address
----Original Message----
>From: Shaun Jackman
>Sent: 03 August 2005 19:15
> On 8/3/05, Richard Henderson <rth@redhat.com> wrote:
>> It is nevertheless correct. Examine all of the parts of the expression.
>>
>> In particular, "&s->b". What type does it have? In an ideal world, it
>> would be "pointer to unaligned integer". But we have no such type in
>> our type system, so it is "pointer to integer". This expression is ONLY
>> THEN passed to memcpy. At which point we query the argument for its
>> alignment, and get the non-intuitive result.
>>
>> If you instead pass "s" to memcpy, you should get the correct unaligned
>> copy. If that isn't happening, that's a bug.
>
> I'm not sure I understood the last line. s is a structure,
Not if "&s->b" makes any sense it isn't!
cheers,
DaveK
--
Can't think of a witty .sigline today....