This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Aliasing problems in GNU Chill?
On Thu, Sep 02, 1999 at 12:43:26AM -0600, Jeffrey A Law wrote:
> In message <19990901144104.A6143@x8b4e53cd.dhcp.okstate.edu>you write:
> > I was reading through andps.c in libchill recently and came across this.
> >
> > else if (bitlength <= SET_SHORT_SIZE)
> > {
> > *((SET_SHORT *)out) = *((SET_SHORT *)left) &
> > *((SET_SHORT *)right);
> > MASK_UNUSED_SHORT_BITS((SET_SHORT *)out, bitlength);
> > }
> >
> > It appears to me that this suffers from the same aliasing problems that
> > we've been hearing about recently. No?
> Yes.
No. SET_SHORT & friends are unsigned char when USE_CHARS is set, and
it's unconditionally set. Hence the exception for char* pointers comes
into play (I believe.)
It could use some changes (the above block is dead code with USE_CHARS defined),
but it appears to be correct.