How to type-pun and why

Gabriel Dos Reis
Mon Jun 12 15:18:00 GMT 2006

 Mattias Engdegård <> writes:

| Using a union intermediate instead,
|   union { double d; uint64_t x; } u;
|   u.d = something;
|   uint64_t x = u.x;
| works as expected, but I would like to know why - if it is a matter of luck
| with the current implementation it might cease working when the compiler
| changes or becomes more aggressive in the future.

that union trick is invalid as well, from the standard point of view.
However, GCC makes a guarantee that it will be supported.

More information about the Gcc-help mailing list