* invoke.texi (Warning Options): Add an explanation of why
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Feb 2000 01:37:31 +0000 (01:37 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Feb 2000 01:37:31 +0000 (01:37 +0000)
you might want the -Wfloat-equal flag.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32061 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/invoke.texi

index 0be42ce..0c66734 100644 (file)
@@ -1,3 +1,8 @@
+2000-02-18  Geoff Keating  <geoffk@cygnus.com>
+
+       * invoke.texi (Warning Options): Add an explanation of why
+       you might want the -Wfloat-equal flag.
+
 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
index dbae221..09cbfc9 100644 (file)
@@ -1724,6 +1724,17 @@ struct s x = @{ 3, 4 @};
 @item -Wfloat-equal
 Warn if floating point values are used in equality comparisons.
 
+The idea behind this is that sometimes it is convenient (for the
+programmer) to consider floating-point values as approximations to
+infinitely precise real numbers.  If you are doing this, then you need
+to compute (by analysing the code, or in some other way) the maximum or
+likely maximum error that the computation introduces, and allow for it
+when performing comparisons (and when producing output, but that's a
+different problem).  In particular, instead of testing for equality, you
+would check to see whether the two values have ranges that overlap; and
+this is done with the relational operators, so equality comparisons are
+probably mistaken.
+
 @item -Wtraditional (C only)
 Warn about certain constructs that behave differently in traditional and
 ANSI C.