zero not negated

Problem version:
Intel® C++ compiler 8.1.019


Operating System :
Windows* & Linux*


Problem Description :

When negating zero as in (-0 , either int, float or double), the MSB (in big-endian), or LSB (in little-endian machines) do not get the value of 1 (which should indicate that 0 is –ve).

Resolution Status :

This issue is fixed in Intel® C++ compiler 8.1.025 or any version of Intel® C++ compiler 10.1 or above versions, if we use -fp:source option which should be used for value-safe optimizations, and for explicit negative 0 value (as different from +0 value).
For more complete information about compiler optimizations, see our Optimization Notice.