This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/79430] [7 Regression] action of statement incorrectly optimised away
- From: "kargl at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 08 Feb 2017 19:04:22 +0000
- Subject: [Bug fortran/79430] [7 Regression] action of statement incorrectly optimised away
- Auto-submitted: auto-generated
- References: <bug-79430-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79430
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargl at gcc dot gnu.org
--- Comment #7 from kargl at gcc dot gnu.org ---
(In reply to Jürgen Reuter from comment #6)
> (In reply to Dominique d'Humieres from comment #5)
> > What does --with-precision=extended?
>
> It sets the default precision of real and complex floats (kind type
> parameter) to 80 bit instead of 64 bit (double) or 128bit (quadruple)
> precision according to:
>
> !!! available REAL kinds ! prec. ! ISO ! C
> integer, parameter :: single = 4 ! 1.. 6 ! real32 ! c_float
> integer, parameter :: double = 8 ! 7..15 ! real64 ! c_double
> integer, parameter :: extended = 10 ! 16..18 ! real128 ! c_long_double
> integer, parameter :: quadruple = 16 ! 19..33 ! -1 ! c_float128
>
> integer, parameter :: default = extended
Your use of terminology is unclear. The default real type in
Fortran is REAL. Real has a default real kind type value of 4.
This means that REAL == REAL(4), which is 32 bits. If you are
using some configure magic to map REAL to REAL(10), your version
of gfortran is too broken to save.
Also note, I just fixed gfortran so that your table above is wrong.
If the four real types with kind = 4, 8, 10, and 16 are available.
Then the mapping is REAL(4) == REAL32, REAL(8) == REAL64, and
REAL(16) == REAL128.
If a clever user messes up what default precision means, then
that clever user gets what they deserve.