public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* (patch, fortran] PR83021 - [7/8 Regression] gfortran segfault in polymorphic assignment
@ 2017-11-26 21:57 Paul Richard Thomas
  2017-11-29 10:09 ` Paul Richard Thomas
  0 siblings, 1 reply; 2+ messages in thread
From: Paul Richard Thomas @ 2017-11-26 21:57 UTC (permalink / raw)
  To: fortran, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 787 bytes --]

Dear All,

This regression was caused by the patch for PR81447. The chunk that
has been modified came about because use association of derived types
in block data, in the presence of a vtable, was trying to add vtable
procedures, which is not allowed. The original patch did not
explicitly target block data and this is fixed here. I decided that a
testcase was not necessary but this could be done if desired.

Bootstrapped and regtested on FC23/x86_64 - OK for both branches?

I will commit tomorrow morning if there are no complaints.

Best regards

Paul

2017-11-26  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/83021
    * resolve.c (resolve_component): Only escape for use assciated
    vtypes if the current namespace has no proc_name and is most
    particularly block data.

[-- Attachment #2: submit.diff --]
[-- Type: text/plain, Size: 812 bytes --]

Index: gcc/fortran/resolve.c
===================================================================
*** gcc/fortran/resolve.c	(revision 255093)
--- gcc/fortran/resolve.c	(working copy)
*************** resolve_component (gfc_component *c, gfc
*** 13502,13508 ****
    if (c->attr.artificial)
      return true;
  
!   if (sym->attr.vtype && sym->attr.use_assoc)
      return true;
  
    /* F2008, C442.  */
--- 13502,13512 ----
    if (c->attr.artificial)
      return true;
  
!   /* Do not allow vtype components to be resolved in nameless namespaces
!      such as block data because the procedure pointers will cause ICEs
!      and vtables are not needed in these contexts.  */
!   if (sym->attr.vtype && sym->attr.use_assoc
!       && sym->ns->proc_name == NULL)
      return true;
  
    /* F2008, C442.  */

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-11-29 10:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-26 21:57 (patch, fortran] PR83021 - [7/8 Regression] gfortran segfault in polymorphic assignment Paul Richard Thomas
2017-11-29 10:09 ` Paul Richard Thomas

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).