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: revap types, step 1


Richard Henderson wrote:

On Thu, Aug 26, 2004 at 11:06:04AM -0700, Steve Kargl wrote:

Incidently, the behavior of the -r8 option is outside the scope
of the Fortran standard. It typically means that all REAL variables
are promoted to DOUBLE PRECISION. It does not necessarily
include the promotion of all DOUBLE PRECISION variables to a QUAD precision.

Really? In which case maybe we don't have to do anything. With no special options, GCC does not currently support a target that doesn't have both a 1 word and a 2 word float.

I can certainly change the patch such that DOUBLE PRECISION
doesn't adjust based on -r8.  I'm not a Fortran user though,
so someone will have to tell me what's most useful.

What Steve wrote is the most useful, and is what a lot of compilers will do if you just specify -i8 -r8 (i.e., they'll map INTEGER to a 64 bit integer, REAL to a 64 bit floating point number and DOUBLE PRECISION also to a 64 bit floating point number.


However, (donning my J3 committee hat), this mapping is not conforming (i.e., it'll change a conforming program to a non-conforming one).

The reason most *programs* get away with this is that they were developed on systems where, by default, INTEGER meant 64 bit integer and REAL meant 64 bit floating point number *and therefore* there was no need to use DOUBLE PRECISION (think: Cray). Cray compilers, in the converse, even had an option to "downgrade" DOUBLE PRECISION to 64 bits, for those programs that *had* DOUBLE PRECISION but actually only assumed 64 bit floating point numbers.

Hope this helps,

--
Toon Moene - e-mail: toon@moene.indiv.nluug.nl - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
A maintainer of GNU Fortran 95: http://gcc.gnu.org/fortran/


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