http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56887
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu.org
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2013-04-09
13:06:15 UTC ---
(In reply to comment #0)
> tests for equality between reals is flagged with a warning.
The support for the warning follows ISO/IEC TR 24772, which recommends users to
"Avoid creating a logical value from a test for equality or inequality
between two floating-point expressions." - And compiler vendors to provide such
a warning.
The problem with many constructs is that one cannot reliably detect whether
they are okay or a bug in the code. Thus, warnings are issued for those; there
are always false positives and missed bugs with warning diagnostic. Those
checks, where the false-positive rate is low and the likelihood for bugs is
high, are enabled by default; others only with -Wall or -Wextra or only with
-W<name-of-the-warning>.
In your case, using integer-valued floating-point numbers is probably fine. As
Thomas wrote, you can use -Wno-compare-reals to disable the warning. See GCC
4.8 release notes or gfortran's man page (or user manual) under -Wextra.