public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "cvs-commit 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: Sun, 24 Apr 2022 13:32:35 +0000 [thread overview] Message-ID: <bug-103662-4-gm0wh7YpcH@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 #20 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Mikael Morin <mikael@gcc.gnu.org>: https://gcc.gnu.org/g:fa5cd7102da676dcb1757b1288421f5f3439ae0e commit r12-8235-gfa5cd7102da676dcb1757b1288421f5f3439ae0e Author: Mikael Morin <mikael@gcc.gnu.org> Date: Sun Apr 24 15:05:41 2022 +0200 fortran: Detect duplicate unlimited polymorphic types [PR103662] This fixes a type-based alias analysis issue with unlimited polymorphic class descriptors (types behind class(*)) causing data initialisation to be removed by optimization. The fortran front-end may create multiple declarations for types, for example if a type is redeclared in each program unit it is used in. To avoid optimization seeing them as non-aliasing, a list of derived types is created at resolution time, and used at translation to set the same TYPE_CANONICAL type for each duplicate type declaration. This mechanism didnât work for unlimited polymorphic descriptors types, as there is a short-circuit return skipping all the resolution handling for them, including the type registration. This change adds type registration at the short-circuit return, and updates type comparison to handle specifically unlimited polymorphic fake symbols, class descriptor types and virtual table types. The test, which exhibited mismatching dynamic types had to be fixed as well. PR fortran/103662 gcc/fortran/ChangeLog: * interface.cc (gfc_compare_derived_types): Support comparing unlimited polymorphic fake symbols. Recursively compare class descriptor types and virtual table types. * resolve.cc (resolve_fl_derived): Add type to the types list on unlimited polymorphic short-circuit return. gcc/testsuite/ChangeLog: * gfortran.dg/unlimited_polymorphic_3.f03 (foo): Separate bind(c) and sequence checks to... (foo_bc, foo_sq): ... two different procedures. (main, foo*): Change type declarations so that type name, component name, and either bind(c) or sequence attribute match between the main type declarations and the procedure type declarations. (toplevel): Add optimization dump checks. Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
next prev parent reply other threads:[~2022-04-24 13:32 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 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 [this message] 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-gm0wh7YpcH@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).