------- 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

Reply via email to