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.
next prev 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: 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).