public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/58355] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
@ 2013-09-15 11:30 ` janus at gcc dot gnu.org
  2013-09-15 21:53 ` janus at gcc dot gnu.org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-09-15 11:30 UTC (permalink / raw)
  To: gcc-bugs

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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-invalid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-09-15
                 CC|                            |janus at gcc dot gnu.org
            Summary|ICE with TYPE, EXTENDS      |[F03] ICE with TYPE,
                   |before parent TYPE defined  |EXTENDS before parent TYPE
                   |                            |defined
     Ever confirmed|0                           |1

--- Comment #1 from janus at gcc dot gnu.org ---
Confirmed with 4.7, 4.8 and trunk. Slightly reduced test case:


module ct
  public :: t1

  type, extends(t1) :: t2
  end type

  type :: t1
  end type
end


It seems to be invalid according to C428 in F08:

R427 type-attr-spec is ABSTRACT
                    or access-spec
                    or BIND (C)
                    or EXTENDS ( parent-type-name )

C428 (R427) A parent-type-name shall be the name of a previously defined
extensible type (4.5.7).


Btw, leaving out the PUBLIC statement, one gets this error:

  type, extends(t1) :: t2
                   1
Error: No such symbol in TYPE definition at (1)


... which is in principle correct, but a bit ill-worded.


Both variants should be rejected with the same (improved) wording.


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

* [Bug fortran/58355] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
  2013-09-15 11:30 ` [Bug fortran/58355] [F03] ICE with TYPE, EXTENDS before parent TYPE defined janus at gcc dot gnu.org
@ 2013-09-15 21:53 ` janus at gcc dot gnu.org
  2013-09-16  8:26 ` janus at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-09-15 21:53 UTC (permalink / raw)
  To: gcc-bugs

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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |janus at gcc dot gnu.org

--- Comment #2 from janus at gcc dot gnu.org ---
Draft patch:


Index: gcc/fortran/decl.c
===================================================================
--- gcc/fortran/decl.c    (revision 202599)
+++ gcc/fortran/decl.c    (working copy)
@@ -7390,6 +7390,7 @@ syntax:


 /* Check a derived type that is being extended.  */
+
 static gfc_symbol*
 check_extended_derived_type (char *name)
 {
@@ -7401,14 +7402,15 @@ check_extended_derived_type (char *name)
       return NULL;
     }

+  extended = gfc_find_dt_in_generic (extended);
+
+  /* F08:C428.  */
   if (!extended)
     {
-      gfc_error ("No such symbol in TYPE definition at %C");
+      gfc_error ("Symbol '%s' at %C has not been previously defined", name);
       return NULL;
     }

-  extended = gfc_find_dt_in_generic (extended);
-
   if (extended->attr.flavor != FL_DERIVED)
     {
       gfc_error ("'%s' in EXTENDS expression at %C is not a "


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

* [Bug fortran/58355] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
  2013-09-15 11:30 ` [Bug fortran/58355] [F03] ICE with TYPE, EXTENDS before parent TYPE defined janus at gcc dot gnu.org
  2013-09-15 21:53 ` janus at gcc dot gnu.org
@ 2013-09-16  8:26 ` janus at gcc dot gnu.org
  2013-09-20 14:10 ` [Bug fortran/58355] [4.7/4.8/4.9 Regression] " janus at gcc dot gnu.org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-09-16  8:26 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from janus at gcc dot gnu.org ---
(In reply to janus from comment #2)
> Draft patch:

... regtests cleanly.


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2013-09-16  8:26 ` janus at gcc dot gnu.org
@ 2013-09-20 14:10 ` janus at gcc dot gnu.org
  2013-09-23  7:40 ` janus at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-09-20 14:10 UTC (permalink / raw)
  To: gcc-bugs

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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[F03] ICE with TYPE,        |[4.7/4.8/4.9 Regression]
                   |EXTENDS before parent TYPE  |[F03] ICE with TYPE,
                   |defined                     |EXTENDS before parent TYPE
                   |                            |defined

--- Comment #4 from janus at gcc dot gnu.org ---
Btw, the ICE is a regression in 4.7 and above (doesn't occur with 4.6).


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2013-09-20 14:10 ` [Bug fortran/58355] [4.7/4.8/4.9 Regression] " janus at gcc dot gnu.org
@ 2013-09-23  7:40 ` janus at gcc dot gnu.org
  2013-09-23  7:45 ` janus at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-09-23  7:40 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from janus at gcc dot gnu.org ---
Author: janus
Date: Mon Sep 23 07:40:39 2013
New Revision: 202823

URL: http://gcc.gnu.org/viewcvs?rev=202823&root=gcc&view=rev
Log:
2013-09-23  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/58355
    * decl.c (check_extended_derived_type): Prevent segfault, modify error
    message.

2013-09-23  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/58355
    * gfortran.dg/extends_15.f90: New.

Added:
    trunk/gcc/testsuite/gfortran.dg/extends_15.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/decl.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2013-09-23  7:40 ` janus at gcc dot gnu.org
@ 2013-09-23  7:45 ` janus at gcc dot gnu.org
  2013-10-11  8:26 ` fgao7 at hotmail dot com
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-09-23  7:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from janus at gcc dot gnu.org ---
Fixed on trunk with r202823. Backports pending ...


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2013-09-23  7:45 ` janus at gcc dot gnu.org
@ 2013-10-11  8:26 ` fgao7 at hotmail dot com
  2013-11-02 10:04 ` janus at gcc dot gnu.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: fgao7 at hotmail dot com @ 2013-10-11  8:26 UTC (permalink / raw)
  To: gcc-bugs

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

Feng Gao <fgao7 at hotmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fgao7 at hotmail dot com

--- Comment #7 from Feng Gao <fgao7 at hotmail dot com> ---
Changing
    type, extends(t1)
to
    type, extends(ct) ! note ct is the module name
will produce the same ICE with gfortran 4.7


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2013-10-11  8:26 ` fgao7 at hotmail dot com
@ 2013-11-02 10:04 ` janus at gcc dot gnu.org
  2013-11-02 12:52 ` janus at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-11-02 10:04 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from janus at gcc dot gnu.org ---
(In reply to Feng Gao from comment #7)
> Changing
>     type, extends(t1)
> to
>     type, extends(ct) ! note ct is the module name
> will produce the same ICE with gfortran 4.7

That is true, but also the original test cases (comment 0 and 1) already ICE
with 4.7 ...


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2013-11-02 10:04 ` janus at gcc dot gnu.org
@ 2013-11-02 12:52 ` janus at gcc dot gnu.org
  2013-11-02 15:56 ` janus at gcc dot gnu.org
  2013-11-02 15:58 ` janus at gcc dot gnu.org
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-11-02 12:52 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from janus at gcc dot gnu.org ---
Author: janus
Date: Sat Nov  2 12:52:04 2013
New Revision: 204318

URL: http://gcc.gnu.org/viewcvs?rev=204318&root=gcc&view=rev
Log:
2013-11-02  Janus Weil  <janus@gcc.gnu.org>

    Backport from mainline
    2013-09-23  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/58355
    * decl.c (check_extended_derived_type): Prevent segfault, modify error
    message.

2013-11-02  Janus Weil  <janus@gcc.gnu.org>

    Backport from mainline
    2013-09-23  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/58355
    * gfortran.dg/extends_15.f90: New.

Added:
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/extends_15.f90
      - copied unchanged from r202823,
trunk/gcc/testsuite/gfortran.dg/extends_15.f90
Modified:
    branches/gcc-4_8-branch/gcc/fortran/ChangeLog
    branches/gcc-4_8-branch/gcc/fortran/decl.c
    branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2013-11-02 12:52 ` janus at gcc dot gnu.org
@ 2013-11-02 15:56 ` janus at gcc dot gnu.org
  2013-11-02 15:58 ` janus at gcc dot gnu.org
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-11-02 15:56 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from janus at gcc dot gnu.org ---
Author: janus
Date: Sat Nov  2 15:56:35 2013
New Revision: 204320

URL: http://gcc.gnu.org/viewcvs?rev=204320&root=gcc&view=rev
Log:
2013-11-02  Janus Weil  <janus@gcc.gnu.org>

    Backport from mainline
    2013-09-23  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/58355
    * decl.c (check_extended_derived_type): Prevent segfault, modify error
    message.

2013-11-02  Janus Weil  <janus@gcc.gnu.org>

    Backport from mainline
    2013-09-23  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/58355
    * gfortran.dg/extends_15.f90: New.

Added:
    branches/gcc-4_7-branch/gcc/testsuite/gfortran.dg/extends_15.f90
      - copied unchanged from r202823,
trunk/gcc/testsuite/gfortran.dg/extends_15.f90
Modified:
    branches/gcc-4_7-branch/gcc/fortran/ChangeLog
    branches/gcc-4_7-branch/gcc/fortran/decl.c
    branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


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

* [Bug fortran/58355] [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
       [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2013-11-02 15:56 ` janus at gcc dot gnu.org
@ 2013-11-02 15:58 ` janus at gcc dot gnu.org
  10 siblings, 0 replies; 11+ messages in thread
From: janus at gcc dot gnu.org @ 2013-11-02 15:58 UTC (permalink / raw)
  To: gcc-bugs

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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #11 from janus at gcc dot gnu.org ---
The fix has been backported to the 4.7 and 4.8 branches. Closing.


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

end of thread, other threads:[~2013-11-02 15:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-58355-4@http.gcc.gnu.org/bugzilla/>
2013-09-15 11:30 ` [Bug fortran/58355] [F03] ICE with TYPE, EXTENDS before parent TYPE defined janus at gcc dot gnu.org
2013-09-15 21:53 ` janus at gcc dot gnu.org
2013-09-16  8:26 ` janus at gcc dot gnu.org
2013-09-20 14:10 ` [Bug fortran/58355] [4.7/4.8/4.9 Regression] " janus at gcc dot gnu.org
2013-09-23  7:40 ` janus at gcc dot gnu.org
2013-09-23  7:45 ` janus at gcc dot gnu.org
2013-10-11  8:26 ` fgao7 at hotmail dot com
2013-11-02 10:04 ` janus at gcc dot gnu.org
2013-11-02 12:52 ` janus at gcc dot gnu.org
2013-11-02 15:56 ` janus at gcc dot gnu.org
2013-11-02 15:58 ` janus at gcc dot gnu.org

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