public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/60231] New: ICE on undefined generic
@ 2014-02-16 22:16 antony at cosmologist dot info
  2014-02-17  9:06 ` [Bug fortran/60231] [4.8/4.9 Regression] " janus at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: antony at cosmologist dot info @ 2014-02-16 22:16 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 60231
           Summary: ICE on undefined generic
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: antony at cosmologist dot info

SampleTest.f90 containing

module Objects

  Type TObjectList
   contains
   procedure :: Add1
   procedure :: Add2   
  generic :: Add => Add1, Add2
  end Type TObjectList

end module Objects

gives

gfortran -c SampleTest.f90
f951: internal compiler error: Segmentation fault
0x85faaea crash_signal
    ../../gcc-trunk/gcc/toplev.c:337
0x81ca0a4 check_generic_tbp_ambiguity
    ../../gcc-trunk/gcc/fortran/resolve.c:11393
0x81ca24b resolve_tb_generic_targets
    ../../gcc-trunk/gcc/fortran/resolve.c:11482
0x81ca820 resolve_typebound_generic
    ../../gcc-trunk/gcc/fortran/resolve.c:11539
0x81ca820 resolve_typebound_procedure
    ../../gcc-trunk/gcc/fortran/resolve.c:11713
0x81ee7fa do_traverse_symtree
    ../../gcc-trunk/gcc/fortran/symbol.c:3581
0x81dd2c0 resolve_typebound_procedures
    ../../gcc-trunk/gcc/fortran/resolve.c:11910
0x81dd2c0 resolve_fl_derived
    ../../gcc-trunk/gcc/fortran/resolve.c:12519
0x81d82a6 resolve_symbol
    ../../gcc-trunk/gcc/fortran/resolve.c:12786
0x81ee7be do_traverse_symtree
    ../../gcc-trunk/gcc/fortran/symbol.c:3575
0x81db14d resolve_types
    ../../gcc-trunk/gcc/fortran/resolve.c:14491
0x81d706c gfc_resolve
    ../../gcc-trunk/gcc/fortran/resolve.c:14588
0x81c323f gfc_parse_file()
    ../../gcc-trunk/gcc/fortran/parse.c:4672
0x81ff6c5 gfc_be_parse_file
    ../../gcc-trunk/gcc/fortran/f95-lang.c:188
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
@ 2014-02-17  9:06 ` janus at gcc dot gnu.org
  2014-02-17  9:20 ` janus at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-17  9:06 UTC (permalink / raw)
  To: gcc-bugs

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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-invalid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-02-17
                 CC|                            |janus at gcc dot gnu.org
            Summary|ICE on undefined generic    |[4.8/4.9 Regression] ICE on
                   |                            |undefined generic
     Ever confirmed|0                           |1

--- Comment #1 from janus at gcc dot gnu.org ---
Confirmed. The ICE occurs with 4.8 and trunk, but 4.7 gives the following:

c0.f90:7.19:

  generic :: Add => Add1, Add2
                   1
Error: 'add1' and 'add2' for GENERIC 'add' at (1) are ambiguous
c0.f90:5.12:

   procedure :: Add1
            1
Error: 'add1' must be a module procedure or an external procedure with an
explicit interface at (1)
c0.f90:6.12:

   procedure :: Add2   
            1
Error: 'add2' must be a module procedure or an external procedure with an
explicit interface at (1)


About the first error one can argue, but the second and third one are certainly
correct. Thus the ICE is a regresssion.


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
  2014-02-17  9:06 ` [Bug fortran/60231] [4.8/4.9 Regression] " janus at gcc dot gnu.org
@ 2014-02-17  9:20 ` janus at gcc dot gnu.org
  2014-02-17 12:31 ` janus at gcc dot gnu.org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-17  9:20 UTC (permalink / raw)
  To: gcc-bugs

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

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 ---
This draft patch fixes the ICE:


Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c    (revision 207804)
+++ gcc/fortran/resolve.c    (working copy)
@@ -11362,6 +11362,7 @@ check_generic_tbp_ambiguity (gfc_tbp_generic* t1,
 {
   gfc_symbol *sym1, *sym2;
   const char *pass1, *pass2;
+  gfc_formal_arglist *dummy_args;

   gcc_assert (t1->specific && t2->specific);
   gcc_assert (!t1->specific->is_generic);
@@ -11384,19 +11385,33 @@ check_generic_tbp_ambiguity (gfc_tbp_generic* t1,
       return false;
     }

-  /* Compare the interfaces.  */
+  /* Determine PASS arguments.  */
   if (t1->specific->nopass)
     pass1 = NULL;
   else if (t1->specific->pass_arg)
     pass1 = t1->specific->pass_arg;
   else
-    pass1 = gfc_sym_get_dummy_args
(t1->specific->u.specific->n.sym)->sym->name;
+    {
+      dummy_args = gfc_sym_get_dummy_args (t1->specific->u.specific->n.sym);
+      if (dummy_args)
+    pass1 = dummy_args->sym->name;
+      else
+    pass1 = NULL;
+    }
   if (t2->specific->nopass)
     pass2 = NULL;
   else if (t2->specific->pass_arg)
     pass2 = t2->specific->pass_arg;
   else
-    pass2 = gfc_sym_get_dummy_args
(t2->specific->u.specific->n.sym)->sym->name;
+    {
+      dummy_args = gfc_sym_get_dummy_args (t2->specific->u.specific->n.sym);
+      if (dummy_args)
+    pass2 = dummy_args->sym->name;
+      else
+    pass2 = NULL;
+    }
+
+  /* Compare the interfaces.  */
   if (gfc_compare_interfaces (sym1, sym2, sym2->name, !t1->is_operator, 0,
                   NULL, 0, pass1, pass2))
     {


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
  2014-02-17  9:06 ` [Bug fortran/60231] [4.8/4.9 Regression] " janus at gcc dot gnu.org
  2014-02-17  9:20 ` janus at gcc dot gnu.org
@ 2014-02-17 12:31 ` janus at gcc dot gnu.org
  2014-02-18  7:46 ` janus at gcc dot gnu.org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-17 12:31 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from janus at gcc dot gnu.org ---
(In reply to janus from comment #2)
> This draft patch fixes the ICE:

... and regtests cleanly.


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
                   ` (2 preceding siblings ...)
  2014-02-17 12:31 ` janus at gcc dot gnu.org
@ 2014-02-18  7:46 ` janus at gcc dot gnu.org
  2014-02-19  7:39 ` janus at gcc dot gnu.org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-18  7:46 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from janus at gcc dot gnu.org ---
Author: janus
Date: Tue Feb 18 07:45:39 2014
New Revision: 207836

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

    PR fortran/60231
    * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
    arguments to prevent ICE.


2014-02-18  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/60231
    * gfortran.dg/typebound_generic_15.f90: New.

Added:
    trunk/gcc/testsuite/gfortran.dg/typebound_generic_15.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/resolve.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
                   ` (3 preceding siblings ...)
  2014-02-18  7:46 ` janus at gcc dot gnu.org
@ 2014-02-19  7:39 ` janus at gcc dot gnu.org
  2014-02-19  7:54 ` janus at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-19  7:39 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from janus at gcc dot gnu.org ---
Author: janus
Date: Wed Feb 19 07:38:45 2014
New Revision: 207876

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

    Backports from mainline:
    2014-02-17  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/55907
    * resolve.c (build_default_init_expr): Don't initialize character
    variable if -fno-automatic is given.

    2014-02-18  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/60231
    * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
    arguments to prevent ICE.


2014-02-19  Janus Weil  <janus@gcc.gnu.org>

    Backports from mainline:
    2014-02-17  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/55907
    * gfortran.dg/init_flag_12.f90: New.

    2014-02-18  Janus Weil  <janus@gcc.gnu.org>

    PR fortran/60231
    * gfortran.dg/typebound_generic_15.f90: New.

Added:
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/init_flag_12.f90
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/typebound_generic_15.f90
Modified:
    branches/gcc-4_8-branch/gcc/fortran/ChangeLog
    branches/gcc-4_8-branch/gcc/fortran/resolve.c
    branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
                   ` (4 preceding siblings ...)
  2014-02-19  7:39 ` janus at gcc dot gnu.org
@ 2014-02-19  7:54 ` janus at gcc dot gnu.org
  2014-02-19  7:55 ` janus at gcc dot gnu.org
  2014-02-27 20:27 ` janus at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-19  7:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from janus at gcc dot gnu.org ---
Fixed for 4.8.3 and 4.9.0. Closing.

Thanks for the report!


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
                   ` (5 preceding siblings ...)
  2014-02-19  7:54 ` janus at gcc dot gnu.org
@ 2014-02-19  7:55 ` janus at gcc dot gnu.org
  2014-02-27 20:27 ` janus at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-19  7:55 UTC (permalink / raw)
  To: gcc-bugs

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

janus at gcc dot gnu.org changed:

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

--- Comment #7 from janus at gcc dot gnu.org ---
Actually closing.


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

* [Bug fortran/60231] [4.8/4.9 Regression] ICE on undefined generic
  2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
                   ` (6 preceding siblings ...)
  2014-02-19  7:55 ` janus at gcc dot gnu.org
@ 2014-02-27 20:27 ` janus at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-27 20:27 UTC (permalink / raw)
  To: gcc-bugs

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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mvondomaros at gmail dot com

--- Comment #8 from janus at gcc dot gnu.org ---
*** Bug 60356 has been marked as a duplicate of this bug. ***


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

end of thread, other threads:[~2014-02-27 20:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-16 22:16 [Bug fortran/60231] New: ICE on undefined generic antony at cosmologist dot info
2014-02-17  9:06 ` [Bug fortran/60231] [4.8/4.9 Regression] " janus at gcc dot gnu.org
2014-02-17  9:20 ` janus at gcc dot gnu.org
2014-02-17 12:31 ` janus at gcc dot gnu.org
2014-02-18  7:46 ` janus at gcc dot gnu.org
2014-02-19  7:39 ` janus at gcc dot gnu.org
2014-02-19  7:54 ` janus at gcc dot gnu.org
2014-02-19  7:55 ` janus at gcc dot gnu.org
2014-02-27 20:27 ` 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).