public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "sgk at troutmask dot apl.washington.edu" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/101918] LTO type mismatches for runtime library functions in mixed -fdefault-real-8 projects
Date: Mon, 30 Aug 2021 20:54:32 +0000	[thread overview]
Message-ID: <bug-101918-4-fSd5ctFF8J@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-101918-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101918

--- Comment #17 from Steve Kargl <sgk at troutmask dot apl.washington.edu> ---
On Mon, Aug 30, 2021 at 07:08:07PM +0000, rimvydas.jas at gmail dot com wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101918
> 
> --- Comment #16 from Rimvydas (RJ) <rimvydas.jas at gmail dot com> ---
> (In reply to Steve Kargl from comment #15)
> > I'm also the person that made these options work
> > for some definition of "work", and I have always considered
> > these options to be broken because of what you are re-discovering.
> > The words of caution for -freal-* and family of options also
> > applies to the -fdefault-* options.  I suspect much of work
> > done on the intrinsics modules is done independently and
> > obliviously to these options.
> Statement like this implies that gfortran does *not* properly support
> variables
> using explicit kinds like selected_real_kind(13,300) or real(kind=8) or
> real(kind=16) or ISO_C_BINDING ones other than default plain REAL.  From
> -ftree-dump-original dumps it is seen that even plain REAL or DOUBLE PRECISION
> are assigned REAL(KIND=N) for all types, like
> static real(kind=8) b[4] = {[0 ... 3]=1.0e+0};

gfortran works just fine if one DOES NOT USE DUBIOUS
OPTIONS to try to change the precision of a type to
another precision.

There is Fortran code in libgfortran that is compiled
by gfortran when the compiler is built.  Whether that
code works as intended when someone uses -fdefault-*
or -freal-* family options remains to be seen.

The ISO C Binding module is built on-the-fly, so will 
likely work except it cannot change the properties of
the companion C types.  REAL(c_float) should map to
C's float.  Fortunately, -fdefault-real-8 does not
promote REAL(c_float) (aka REAL(4)) to REAL(8); OTOH
-freal-4-real-8 will do the promotion.

The IEEE ARITHMETIC module is partially built on-the-fly
when compiling code with some information coming from files
in gcc/libgfortran/ieee.  Those files are compiled when
gfortran is builti. I don't know if anyone has extensively
tried these options with IEEE modules.

> 
> > COMMON, EQUIVALENCE, and BOZ are not legacy features.
> > These are full fledged features of modern Fortran. 
> Some people still prefer to use Hollerith constants, implicit types, statement
> functions, arithmetic if's, shared do terminations, fixed source form, even
> PAUSE and there is nothing wrong with it.  Still, these are not related to this
> PR.
> 

Of course, these new red herring aren't related to this PR.

COMMON, EQUIVALENCE, BOZ, external subprogram, etc are related
because these are affected by mucking around with storage
assocation and the ABI.

  parent reply	other threads:[~2021-08-30 20:54 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-15  8:41 [Bug fortran/101918] New: " rimvydas.jas at gmail dot com
2021-08-15  8:42 ` [Bug fortran/101918] " rimvydas.jas at gmail dot com
2021-08-15 15:36 ` kargl at gcc dot gnu.org
2021-08-16  9:15 ` rguenth at gcc dot gnu.org
2021-08-16 14:57 ` sgk at troutmask dot apl.washington.edu
2021-08-16 18:49 ` anlauf at gcc dot gnu.org
2021-08-16 21:34 ` sgk at troutmask dot apl.washington.edu
2021-08-30 10:26 ` rimvydas.jas at gmail dot com
2021-08-30 10:28 ` rimvydas.jas at gmail dot com
2021-08-30 14:34 ` sgk at troutmask dot apl.washington.edu
2021-08-30 14:39 ` kargl at gcc dot gnu.org
2021-08-30 14:48 ` kargl at gcc dot gnu.org
2021-08-30 15:23 ` rimvydas.jas at gmail dot com
2021-08-30 16:16 ` sgk at troutmask dot apl.washington.edu
2021-08-30 17:11 ` rimvydas.jas at gmail dot com
2021-08-30 18:26 ` sgk at troutmask dot apl.washington.edu
2021-08-30 19:08 ` rimvydas.jas at gmail dot com
2021-08-30 20:54 ` sgk at troutmask dot apl.washington.edu [this message]
2021-08-30 21:23 ` rimvydas.jas at gmail dot com
2021-08-30 22:18 ` sgk at troutmask dot apl.washington.edu
2021-08-30 22:26 ` rimvydas.jas at gmail dot com
2021-09-02 11:01 ` rimvydas.jas at gmail dot com
2021-09-02 11:02 ` rimvydas.jas at gmail dot com
2021-09-02 11:05 ` rimvydas.jas at gmail dot com
2021-09-02 11:06 ` rimvydas.jas at gmail dot com
2021-09-02 11:08 ` rimvydas.jas at gmail dot com
2021-09-12 19:12 ` rimvydas.jas at gmail dot com

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-101918-4-fSd5ctFF8J@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: link
Be 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).