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/45586] [4.6/4.7 Regression] ICE non-trivial conversion at assignment
Date: Tue, 26 Jul 2011 14:28:00 -0000	[thread overview]
Message-ID: <bug-45586-4-fPYJQsFIni@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-45586-4@http.gcc.gnu.org/bugzilla/>

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586

--- Comment #59 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-07-26 14:27:43 UTC ---
(In reply to comment #53)
> reduced testcase for 4.7
>   y=>rs_gauge(i)%rs(j)%rs_grid%r

Here, "%r->data" is marked as restricted as "r" is allocatable. However, all
other references are a pointer.

The derived type is obtained via a nested calls to gfc_get_derived_type. For
"r" one calls gfc_get_array_type_bounds - seemingly with "restricted = 1".

If one now declares "rs_gauge", one calls gfc_nonrestricted_type which removes
the "restrict" qualifier from the type (i.e. "rs_gauge") and from the
"rs_gauge->rs" but does not go higher up the chain.

Thus, one somehow needs to walk the components and remove the "restrict" there
...


With the following patch, one does not get any ICE anymore, but I am neither
sure whether it is sufficient, nor whether it removes restrict qualifiers where
it shouldn't, nor whether it is correct at all.


--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -2421,6 +2421,9 @@ gfc_get_derived_type (gfc_symbol * derived)
               && !c->attr.proc_pointer)
        field_type = build_pointer_type (field_type);

+      if (c->attr.pointer)
+       field_type = gfc_nonrestricted_type (field_type);
+
       /* vtype fields can point to different types to the base type.  */
       if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.vtype)
          field_type = build_pointer_type_for_mode (TREE_TYPE (field_type),


  parent reply	other threads:[~2011-07-26 14:28 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-45586-4@http.gcc.gnu.org/bugzilla/>
2010-09-24 10:43 ` [Bug lto/45586] [4.6 " Joost.VandeVondele at pci dot uzh.ch
2010-09-24 11:17 ` Joost.VandeVondele at pci dot uzh.ch
2010-09-30 15:50 ` rguenth at gcc dot gnu.org
2010-10-21 15:28 ` rguenth at gcc dot gnu.org
2010-11-25 16:59 ` [Bug fortran/45586] " rguenth at gcc dot gnu.org
2010-11-25 17:00 ` rguenth at gcc dot gnu.org
2010-11-25 17:07 ` Joost.VandeVondele at pci dot uzh.ch
2010-11-25 17:44 ` matz at gcc dot gnu.org
2010-11-25 18:04 ` matz at gcc dot gnu.org
2010-11-26 10:27 ` Joost.VandeVondele at pci dot uzh.ch
2010-11-26 12:23 ` rguenth at gcc dot gnu.org
2010-11-26 12:49 ` Joost.VandeVondele at pci dot uzh.ch
2010-11-26 13:45 ` rguenth at gcc dot gnu.org
2010-11-26 13:55 ` burnus at gcc dot gnu.org
2010-11-26 14:02 ` Joost.VandeVondele at pci dot uzh.ch
2010-11-26 14:40 ` rguenther at suse dot de
2010-11-26 14:43 ` rguenth at gcc dot gnu.org
2011-01-13 15:49 ` burnus at gcc dot gnu.org
2011-01-16 13:04 ` tkoenig at gcc dot gnu.org
2011-01-16 15:18 ` mikael at gcc dot gnu.org
2011-01-16 16:37 ` tkoenig at netcologne dot de
2011-01-17 11:30 ` rguenth at gcc dot gnu.org
2011-01-17 13:42 ` mikael at gcc dot gnu.org
2011-01-17 13:50 ` burnus at gcc dot gnu.org
2011-01-17 14:15 ` matz at gcc dot gnu.org
2011-01-18 12:57 ` mikael at gcc dot gnu.org
2011-01-18 13:47 ` rguenther at suse dot de
2011-01-18 14:20 ` matz at gcc dot gnu.org
2011-01-18 17:38 ` mikael at gcc dot gnu.org
2011-01-19 16:48 ` matz at gcc dot gnu.org
2011-01-20 16:56 ` matz at gcc dot gnu.org
2011-01-21 23:20 ` mikael at gcc dot gnu.org
2011-01-24  9:55 ` rguenther at suse dot de
2011-01-25 14:59 ` mikael at gcc dot gnu.org
2011-01-25 15:03 ` mikael at gcc dot gnu.org
2011-01-25 15:13 ` matz at gcc dot gnu.org
2011-01-25 15:13 ` Joost.VandeVondele at pci dot uzh.ch
2011-01-25 22:28 ` mikael at gcc dot gnu.org
2011-01-26 13:13 ` matz at gcc dot gnu.org
2011-02-07 22:20 ` janus at gcc dot gnu.org
2011-02-12 13:12 ` burnus at gcc dot gnu.org
2011-02-12 13:24 ` burnus at gcc dot gnu.org
2011-02-12 15:05 ` mikael at gcc dot gnu.org
2011-02-13 17:51 ` jsm28 at gcc dot gnu.org
2011-02-18 19:54 ` matz at gcc dot gnu.org
2011-02-18 20:21 ` matz at gcc dot gnu.org
2011-04-05 15:10 ` Joost.VandeVondele at pci dot uzh.ch
2011-04-05 15:16 ` [Bug fortran/45586] [4.6/4.7 " rguenth at gcc dot gnu.org
2011-04-11  9:10 ` burnus at gcc dot gnu.org
2011-04-12  5:50 ` Joost.VandeVondele at pci dot uzh.ch
2011-04-13 18:47 ` Joost.VandeVondele at pci dot uzh.ch
2011-04-26 14:09 ` burnus at gcc dot gnu.org
2011-04-26 18:18 ` Joost.VandeVondele at pci dot uzh.ch
2011-04-26 18:24 ` Joost.VandeVondele at pci dot uzh.ch
2011-04-26 19:37 ` tkoenig at gcc dot gnu.org
2011-06-27 15:50 ` jakub at gcc dot gnu.org
2011-07-26 14:28 ` burnus at gcc dot gnu.org [this message]
2011-07-27 22:35 ` burnus at gcc dot gnu.org
2011-07-28  5:41 ` burnus at gcc dot gnu.org
2011-07-28  5:44 ` burnus at gcc dot gnu.org
2012-02-14 13:03 ` rguenth at gcc dot gnu.org
2012-02-14 13:23 ` rguenth at gcc dot gnu.org
2012-03-07  9:48 ` rguenth at gcc dot gnu.org
2012-03-07  9:51 ` [Bug fortran/45586] [4.8 " rguenth at gcc dot gnu.org
2012-03-12 10:16 ` dominiq at lps dot ens.fr
2012-05-11  8:33 ` rguenth at gcc dot gnu.org
2012-07-28  9:47 ` mikael at gcc dot gnu.org
2012-07-30  8:44 ` rguenther at suse dot de
2012-07-30 10:37 ` mikael at gcc dot gnu.org
2012-07-30 11:06 ` rguenther at suse dot de
2012-07-30 12:31 ` mikael at gcc dot gnu.org
2012-07-30 12:34 ` rguenther at suse dot de
2012-08-01 12:23 ` mikael at gcc dot gnu.org
2012-08-01 12:29 ` rguenther at suse dot de
2012-08-01 12:39 ` mikael at gcc dot gnu.org
2012-08-01 15:03 ` mikael at gcc dot gnu.org
2012-08-01 15:06 ` rguenther at suse dot de
2012-08-01 16:24 ` burnus at gcc dot gnu.org
2012-08-01 18:39 ` mikael at gcc dot gnu.org
2012-09-04 12:23 ` Joost.VandeVondele at mat dot ethz.ch
2012-09-26  6:43 ` Joost.VandeVondele at mat dot ethz.ch
2012-09-26  9:38 ` burnus at gcc dot gnu.org
2012-09-26 16:07 ` mikael at gcc dot gnu.org
2012-09-30 12:31 ` Joost.VandeVondele at mat dot ethz.ch
2012-11-15 22:46 ` bergner at gcc dot gnu.org
2012-12-13  8:42 ` Joost.VandeVondele at mat dot ethz.ch
2012-12-13 12:07 ` rguenth at gcc dot gnu.org
2012-12-13 15:14 ` Joost.VandeVondele at mat dot ethz.ch
2013-01-15 19:54 ` rsandifo at gcc dot gnu.org
2013-03-22 14:45 ` [Bug fortran/45586] [4.8/4.9 " jakub at gcc dot gnu.org
2013-03-24  8:04 ` Joost.VandeVondele at mat dot ethz.ch
2013-05-31 10:59 ` jakub at gcc dot gnu.org
2013-08-29 13:35 ` Joost.VandeVondele at mat dot ethz.ch
2013-10-16  9:49 ` jakub at gcc dot gnu.org
2013-11-21 18:31 ` Joost.VandeVondele at mat dot ethz.ch
2013-12-30  8:42 ` nheghathivhistha at gmail dot com
2014-01-09 11:52 ` rguenth at gcc dot gnu.org
2014-01-09 14:44 ` [Bug fortran/45586] [4.8 " rguenth at gcc dot gnu.org
2014-02-08 12:47 ` pault at gcc dot gnu.org
2014-02-09 12:57 ` rguenther at suse dot de
2014-02-16  7:00 ` Joost.VandeVondele at mat dot ethz.ch

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-45586-4-fPYJQsFIni@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).