public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "burnus at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/99355] -freal-X-real-Y -freal-Z-real-X promotes Z to Y Date: Thu, 04 Mar 2021 14:01:18 +0000 [thread overview] Message-ID: <bug-99355-4-LoQDoyNmf5@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-99355-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99355 --- Comment #11 from Tobias Burnus <burnus at gcc dot gnu.org> --- (In reply to Dominique d'Humieres from comment #8) > r11-7501 changed the output of the test in comment O, is this expected? (In reply to Dominique d'Humieres from comment #10) > % gfc pr57871.f90 I am slightly confused. Do you mean the output for this PR's comment 0 has changed – or the result for the testcase in PR 57871 comment 0? > % ./a.out > kind(1.0_p1) 4 precision(1.0_p1) 6 > kind(1.0_dp) 8 precision(1.0_dp) 15 Using PR 57871 comment 0, I get exactly the same output as you have with both gfortran and ifort. * * * > So without option kind(1.0_p1) is 4, should not it be converted to 16 with > -freal-4-real-16? Currently, the code handles: 1.0 = default-kind real 1.0d0 = default-double-precision-kind real → promote And real :: A → default-kind real double precision :: B → default-double-precision real real*<kind> :: C → convert <kind> real(kind=<kind> :: D → convert <kind> The question is what to do about: 1.0_<kind> * * * However, we cannot completely avoid ambiguity as for -freal-4-real-8 freal-8-real-16 integer, parameter :: k1 = kind(1.0) → 8 real(kind=k1) :: var → kind(8) → 16 real(kind=4) :: var → kind(4) → 8 But some issues are unavoidable and all -freal-*-real-* flags should be avoided, if possible. * * * Seems as if we need to handle in match_real_constant the case default-real-kind separately from _kind value specified. Untested: --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -666,6 +666,25 @@ done: if (kind == -1) goto cleanup; + if (kind == 4) + { + if (flag_real4_kind == 8) + kind = 8; + if (flag_real4_kind == 10) + kind = 10; + if (flag_real4_kind == 16) + kind = 16; + } + else if (kind == 8) + { + if (flag_real8_kind == 4) + kind = 4; + if (flag_real8_kind == 10) + kind = 10; + if (flag_real8_kind == 16) + kind = 16; + } + switch (exp_char) { case 'd':
next prev parent reply other threads:[~2021-03-04 14:01 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-03 7:00 [Bug fortran/99355] New: " nickpapior at gmail dot com 2021-03-03 7:00 ` [Bug fortran/99355] " nickpapior at gmail dot com 2021-03-03 8:31 ` rguenth at gcc dot gnu.org 2021-03-03 9:16 ` nickpapior at gmail dot com 2021-03-03 14:38 ` burnus at gcc dot gnu.org 2021-03-03 20:39 ` nickpapior at gmail dot com 2021-03-04 7:20 ` cvs-commit at gcc dot gnu.org 2021-03-04 7:20 ` burnus at gcc dot gnu.org 2021-03-04 12:02 ` dominiq at lps dot ens.fr 2021-03-04 12:37 ` burnus at gcc dot gnu.org 2021-03-04 13:03 ` dominiq at lps dot ens.fr 2021-03-04 14:01 ` burnus at gcc dot gnu.org [this message] 2021-03-04 14:13 ` burnus at gcc dot gnu.org 2021-03-04 14:41 ` dominiq at lps dot ens.fr 2021-03-04 16:04 ` burnus at gcc dot gnu.org 2021-03-04 16:24 ` dominiq at lps dot ens.fr 2021-03-04 22:32 ` burnus at gcc dot gnu.org 2021-03-05 9:43 ` cvs-commit at gcc dot gnu.org 2021-03-05 9:46 ` burnus at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-99355-4-LoQDoyNmf5@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).