http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53095
--- Comment #2 from q2p0 <JoaquinMonleon at gmail dot com> 2012-04-23 22:04:15 UTC --- But if: I use one architecture of 64 bits OR I use the standard -std=99 OR I use a temporal double variable OR I compile other compiler that is not GCC I don't get this error. Ok I acept the response "This is the result of rounding". All we know that the nearest representable number for a double (-259.0000) in a short is (-258). I answering me if you really take a look to the code of main.