This is the mail archive of the
mailing list for the GCC project.
[Bug target/33391] [4.3 regression] gfortran.dg/do_3.F90 fails at -O2
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Sep 2007 15:40:55 -0000
- Subject: [Bug target/33391] [4.3 regression] gfortran.dg/do_3.F90 fails at -O2
- References: <email@example.com/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from dominiq at lps dot ens dot fr 2007-09-11 15:40 -------
> Well, I think the "depending on the language being compiled" is important. I
> think the testcase is valid Fortran, and shouldn't fail whatever the
> optimization level you use.
FX, may I recall what you wrote in PR33296:
> "A program is prohibited from invoking an intrinsic procedure under
> circumstances where a value to be returned in a subroutine argument or function
> result is outside the range of values representable by objects of the specified
> type and type parameters, unless the intrinsic module IEEE_ARITHMETIC (section
> 14) is accessible and there is support for an infinite or a NaN result, as
Although there is no intrinsic involved in the test case, I don't see the logic
to consider (abuse of) overflows valid for arithmetic operations and invalid
Now it would probably make sense to link the -fno-range-check option to
-fno-strict-overflow (or to replace the former by the later): if one violation
is allowed, I do not see why the other one could be forbiden. Note that without
-fno-range-check the code gives a ton of hard errors.
I stick to my opinion that, from a numerical point of view, the only valid
option for exceptions is ABORT().
Last point, the two recent failures are the result of inlining not performed
before (the other one was due to a bug that have been fixed). Unless it is
shown that such inlining causes a performance regression, I do not see the
point to revert it based on the behavior of (in)valid corner test cases.
To see the lot of traffic involved by the gcc choice you can follow the threads