public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "mikael at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/103662] [12 Regression] TBAA problem in Fortran FE triggering in gfortran.dg/unlimited_polymorphic_3.f03
Date: Tue, 19 Apr 2022 16:12:44 +0000	[thread overview]
Message-ID: <bug-103662-4-KoathCFAxn@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-103662-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #17 from Mikael Morin <mikael at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #15)
> Now, the question is what is the Fortran unlimited polymorphic semantics, if
> one can store through one type and read through a different type which just
> has the same layout, or if it also has to use the same name etc., or if it
> is even acceptable to store through say a type with a pair of integers and
> read through a type with double precision etc.

I think the pointer assignments in foo are invalid:


10.2.2.3 Data pointer assignment
… If the pointer object is of a type with the BIND attribute or the SEQUENCE
attribute, the dynamic type of the pointer target shall be that type.

 => the dynamic type of tgt shall be respectively s and t

7.3.2.3 CLASS type specifier
… The dynamic type of an associated polymorphic pointer is the dynamic type of
its target.

 => the dynamic type of tgt is that of z
 => the dynamic type of z is that of y
 => the dynamic type of y is that of x, which is sq

7.5.2.4 Determination of derived types
… Data entities also have the same type if they are declared with reference to
different derived-type definitions that specify the same type name, all have
the SEQUENCE attribute or all have the BIND attribute, have no components with
PRIVATE accessibility, and have components that agree in order, name, and
attributes. Otherwise, they are of different derived types.

 => sq and s are different types (different component name)
 => sq and t are different types (different component name, bind(c), sequence)
 => s and t are different types (bind(c), sequence)


So ptr1 and ptr2 should either have type sq, or s and t should be changed to be
"compatible" with sq. And "compatible" is defined in the 7.5.2.4 excerpt above.

  parent reply	other threads:[~2022-04-19 16:12 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-11 19:25 [Bug fortran/103662] New: " hubicka at gcc dot gnu.org
2021-12-12  8:32 ` [Bug fortran/103662] " hubicka at gcc dot gnu.org
2021-12-14 15:51 ` cvs-commit at gcc dot gnu.org
2021-12-14 18:27 ` anlauf at gcc dot gnu.org
2021-12-14 18:34 ` hubicka at kam dot mff.cuni.cz
2021-12-14 21:53 ` seurer at gcc dot gnu.org
2021-12-15  9:08 ` clyon at gcc dot gnu.org
2022-01-04  9:32 ` rguenth at gcc dot gnu.org
2022-01-04  9:33 ` [Bug fortran/103662] [12 Regression] " rguenth at gcc dot gnu.org
2022-01-17 12:48 ` rguenth at gcc dot gnu.org
2022-01-17 17:36 ` hubicka at kam dot mff.cuni.cz
2022-01-18 14:09 ` rguenth at gcc dot gnu.org
2022-03-22 11:50 ` jakub at gcc dot gnu.org
2022-03-24 14:48 ` jakub at gcc dot gnu.org
2022-04-18 18:21 ` mikael at gcc dot gnu.org
2022-04-18 18:23 ` mikael at gcc dot gnu.org
2022-04-19 13:46 ` jakub at gcc dot gnu.org
2022-04-19 14:07 ` jakub at gcc dot gnu.org
2022-04-19 15:27 ` rguenth at gcc dot gnu.org
2022-04-19 16:12 ` mikael at gcc dot gnu.org [this message]
2022-04-19 16:51 ` jakub at gcc dot gnu.org
2022-04-20 10:16 ` hubicka at kam dot mff.cuni.cz
2022-04-24 13:32 ` cvs-commit at gcc dot gnu.org
2022-04-25  7:50 ` rguenth at gcc dot gnu.org
2022-04-25 11:32 ` cvs-commit at gcc dot gnu.org
2022-04-26  7:18 ` cvs-commit at gcc dot gnu.org
2022-04-26 14:57 ` hubicka at kam dot mff.cuni.cz
2022-04-27  9:36 ` cvs-commit 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-103662-4-KoathCFAxn@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).