This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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]

Re: [gfortran,patch] Add option to raise FPE


Hi FX,

have you received any feedback on your patch?  For our chemical
modelling studies we use the trapping mechanism with other compilers and
wih to do the same with gfortran.

Cheers,
Carsten

François-Xavier Coudert wrote:
> Hi all,
> 
> Attached patch adds support for an interesting feature present in many
> commercial compilers: raising a floating-point exception (FPE) when a
> IEEE exception is encountered (invalid operation, such as sqrt(-1.0),
> overflow, underflow, division by zero, loss of precision and denormal
> numbers). This is very interesting for debugging, since it enables one to
> know where a numerical computation have gone wrong, when you do not
> expect NaN to creep into your results, for example.
> 
> Commercial compilers allow to do this with a compile-time option, which I
> added to gfortran: I called it -ffpe-trap, though -ffpe-raise might be a
> better name (any other ideas welcome). It is to be used in the following
> way:
>     gfortran fpe-test.f90 -ffpe-trap=invalid,overflow
> where -ffpe-trap accepts a comma-separated list of IEEE exceptions
> (invalid,overflow,underflow,zero,precision,denormal).
> 
> I completed the support for runtime selection of the cases when a FPE
> should be raised. The library already read environment variables
> GFORTRAN_FPU_* but did not use them. They are now used, and override
> values specified at compile-time in case of a conflict.
> 
> The gory target-dependent assembler code (necessary since there is not
> portable way to do these things) is in a new libgfortran/config
> directory, following the way it is done for libstdc++-v3. For now, only
> code for i?86 processors is included; I will provide code for other
> platforms after proper testing (ppc, sparc, alpha). A fallback generic
> configuration is provided, which warns the user that the option is not
> (yet) supported on his FPU.
> 
> I gladly welcome any comment on this patch. Can someone review it?
> 
> FX
> 
> PS: two diffs are attached to this mail, one with the regenerated
> files and one without them.

--


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