http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47796

--- Comment #2 from qihua.dai at intel dot com 2011-02-18 07:54:15 UTC ---
(In reply to comment #1)
> You are violating C/C++ aliasing rules:
> pData = (unsigned int *)pTmp;
>         data = *pData;
>         printf("data = 0x%x\n", data);
> You access a tmp_t via an unsigned int which is undefined.

But why does gcc 4.4.0 have no this problem?

gcc 4.5 does not report warning like "break strict-aliasing rule" for this
code.
If accessing tmp_t via an unsigned int is illegal, does it mean we cannot write
c code to w/r bits in unsigned int?

Reply via email to