On Tue, Aug 02, 2005 at 02:29:44PM -0700, Mike Stump wrote:
> On Aug 2, 2005, at 1:45 PM, Ian Lance Taylor wrote:
> >That argument doesn't make sense to me.  memcpy takes a void*
> >argument, which has no presumed alignment.
> 
> The memcpy builtin uses the static type of the actual argument  
> (before conversion to void*), to gain hints about the alignments of  
> the data coming in.  This is so that we can producing nice fast code  
> for 1-16 bytes objects.  This is actually good.  The real problem is  
> formation of the address of the member doesn't produce a pointer to  
> unaligned type, but rather a pointer to aligned type, this is the  
> part that is wrong.  We'd have to add pointers to unaligned data to  
> our type system to fix it.  That should be done, but is a hard/big  
> job, and no one has stepped forward to do it.

So my suggestion to just make pointers to unaligned objects void* would
work in this case, then.

Reply via email to