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

Bug#491653: gcc-4.3: misoptimization of 64-bit bitfield when not byte aligned



close 491653
thanks

Hi Bastian,

You're right again, this is entirely due to the effects of strict aliasing rules. The problem goes away with -fno-strict-aliasing.

Nick

Bastian Blank wrote:
On Sun, Jul 20, 2008 at 11:14:10PM -0700, Nick Lewycky wrote:
This testcase produces different output depending on whether -O1 or -O2 is
specified.

The testcase is wrong. Please produce a _minimal_ variant, it even shows
the same behaviour without bitfields.

Please explain what exactly the following is suposed to do:
| *(1+(uint64_t *) &x)

x includes no unit64_t at this address, but bitfields, a different type.
So this is an aliasing violation.

Bastian





Reply to: