Re: Question on strict aliasing in C.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2011-07-04 at 19:17 +0200, Georg-Johann Lay wrote:
> >> double copysign (double x, double y)
> >> {
> >>     unsigned short * const px = (unsigned short*)(char*)&x + 3;
> >>     unsigned short * const py = (unsigned short*)(char*)&y + 3;

I don't get why you have the (char*) cast here?

> >>     *px = *px & ~MASK | *py & MASK;
> >>     return x;
> >> }
> >>
> >> So I want to reassure me if the code is ok or not.
> > 
> > It's not.  Tey're wrong, you're right.

So let me ask: if you change the last line to:

	return *px;

instead, is it now OK WRT aliasing rules?



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux