This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/33391] [4.3 regression] gfortran.dg/do_3.F90 fails at -O2

------- 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 
> appropriate."

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
for intrinsics. 

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
starting at


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]