Hi: use gcc4.1.2 on x86_64/linux, for example: main() { long long int a; double b; a=4607182418800017408; b=*(double *)&a; printf("%f\n",b); } if using -O0/-O1 optimization, the result is 1.000000; but if using -O2/-O3 optimization,the result is 0.000000. i have try to close -fno-strict-aliasing in -O2/-O3, the result will be same as -O0/-O1.
so i think the strict-aliasing may have some bug!!! -- Summary: strict-aliasing error Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: baisjing at yahoo dot com dot cn http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38588