------- Comment #2 from ebotcazou at gcc dot gnu dot org 2006-02-17 12:04 ------- The code is invalid ISO C because "*((uint32_t *) &sy" breaks aliasing rules.
> Our workarounds include (i) not using the optimiser, -fno-strict-aliasing should be sufficient. > or (ii) using a > union instead of the "*((uint32_t *) &sy" style to obtain the > floating point (result) pattern. Yep, the canonical method. See the entry for -fstrict-aliasing in the manual. -- ebotcazou at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot gnu dot | |org Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26337