Using the command line switches -pedantic -ffast-math triggers an error and
aborts compilation of code using HUGE_VAL.

To reproduce, save the following code as huge.cpp:

#include <math.h>
#include <stdio.h>

int main(int argc,char **argv)
{
  double v = HUGE_VAL;

  printf("%f\n",v);

  return 0;
}

Compile with:

g++-4.0 -ffast-math -pedantic huge.cpp

Result is:
huge.cpp:6:14: warning: use of C99 hexadecimal floating constant
huge.cpp:6: error: floating constant exceeds range of 'double'

Compilation aborts here. Note that there is a similar bug in the database,
namely #11931 that exists at least since g++-3.3.2 and has not been touched
yet. Unfortunately, starting with g++-4.0.1, this bug causes an unjustified
error (not just a warning) and thus avoids compilation of existing
production code. Bug #11931 has been marked as priority "low"; however,
since this bug remained in the bug data base for so long now, and since it
is now even raised to an error instead of just a warning, I would like to
suggest to raise the priority to "normal".

And please, please: Could please someone care about this one?

So long, and thanks a lot,
Thomas

-- 
           Summary: -pedantic -ffast-math breaks working code
           Product: gcc
           Version: 4.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: thor at math dot tu-berlin dot de
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23139

Reply via email to