public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/40164]  New: Fortran 2003: "Arrays of procedure pointers"
@ 2009-05-15 18:22 janus at gcc dot gnu dot org
  2009-05-15 21:51 ` [Bug fortran/40164] " janus at gcc dot gnu dot org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: janus at gcc dot gnu dot org @ 2009-05-15 18:22 UTC (permalink / raw)
  To: gcc-bugs

PROGRAM test_prog

 TYPE ProcPointerArray
   PROCEDURE(add), POINTER, NOPASS :: f
 END TYPE ProcPointerArray

 TYPE (ProcPointerArray) :: f_array(1)
 PROCEDURE(add), POINTER :: f

 f_array(1)%f => add
 f => f_array(1)%f
 PRINT*, f(2.,4.)

CONTAINS

 FUNCTION add(a,b) RESULT(sum)
   REAL, INTENT(in) :: a, b
   REAL :: sum
   sum = a + b
 END FUNCTION add

END PROGRAM test_prog


This produces the error

 f => f_array(1)%f
                1
Error: VARIABLE attribute of 'f_array' conflicts with PROCEDURE attribute at
(1)

Reported by Barron Bichon.


-- 
           Summary: Fortran 2003: "Arrays of procedure pointers"
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: janus at gcc dot gnu dot org


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


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

* [Bug fortran/40164] Fortran 2003: "Arrays of procedure pointers"
  2009-05-15 18:22 [Bug fortran/40164] New: Fortran 2003: "Arrays of procedure pointers" janus at gcc dot gnu dot org
@ 2009-05-15 21:51 ` janus at gcc dot gnu dot org
  2009-05-16 14:10 ` [Bug fortran/40164] Fortran 2003: "Arrays of procedure pointers" (using PPCs) janus at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: janus at gcc dot gnu dot org @ 2009-05-15 21:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from janus at gcc dot gnu dot org  2009-05-15 21:51 -------
Here is a small patch which fixes the test case:

Index: gcc/fortran/primary.c
===================================================================
--- gcc/fortran/primary.c       (revision 147527)
+++ gcc/fortran/primary.c       (working copy)
@@ -2558,7 +2558,7 @@
       if (gfc_matching_procptr_assignment)
        {
          gfc_gobble_whitespace ();
-         if (gfc_peek_ascii_char () == '(')
+         if (!sym->attr.dimension && gfc_peek_ascii_char () == '(')
            /* Parse functions returning a procptr.  */
            goto function0;



-- 

janus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |janus at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-05-15 21:51:18
               date|                            |


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


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

* [Bug fortran/40164] Fortran 2003: "Arrays of procedure pointers" (using PPCs)
  2009-05-15 18:22 [Bug fortran/40164] New: Fortran 2003: "Arrays of procedure pointers" janus at gcc dot gnu dot org
  2009-05-15 21:51 ` [Bug fortran/40164] " janus at gcc dot gnu dot org
@ 2009-05-16 14:10 ` janus at gcc dot gnu dot org
  2009-05-18 14:45 ` janus at gcc dot gnu dot org
  2009-05-18 14:47 ` janus at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: janus at gcc dot gnu dot org @ 2009-05-16 14:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from janus at gcc dot gnu dot org  2009-05-16 14:09 -------
Adding in the test case a line like

 print *, f_array(1)%f(3.,5.)

produces a segfault in gfc_conv_scalarized_array_ref (trans-array.c, 2414).


-- 

janus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Fortran 2003: "Arrays of    |Fortran 2003: "Arrays of
                   |procedure pointers"         |procedure pointers" (using
                   |                            |PPCs)


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


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

* [Bug fortran/40164] Fortran 2003: "Arrays of procedure pointers" (using PPCs)
  2009-05-15 18:22 [Bug fortran/40164] New: Fortran 2003: "Arrays of procedure pointers" janus at gcc dot gnu dot org
  2009-05-15 21:51 ` [Bug fortran/40164] " janus at gcc dot gnu dot org
  2009-05-16 14:10 ` [Bug fortran/40164] Fortran 2003: "Arrays of procedure pointers" (using PPCs) janus at gcc dot gnu dot org
@ 2009-05-18 14:45 ` janus at gcc dot gnu dot org
  2009-05-18 14:47 ` janus at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: janus at gcc dot gnu dot org @ 2009-05-18 14:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from janus at gcc dot gnu dot org  2009-05-18 14:45 -------
Subject: Bug 40164

Author: janus
Date: Mon May 18 14:44:55 2009
New Revision: 147663

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

        PR fortran/40164
        * primary.c (gfc_match_rvalue): Handle procedure pointer components in
        arrays.
        * resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and
        array references.
        (resolve_fl_derived): Procedure pointer components are not required to
        have constant array bounds in their return value.


2009-05-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/40164
        * gfortran.dg/proc_ptr_comp_8.f90: New.


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


-- 


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


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

* [Bug fortran/40164] Fortran 2003: "Arrays of procedure pointers" (using PPCs)
  2009-05-15 18:22 [Bug fortran/40164] New: Fortran 2003: "Arrays of procedure pointers" janus at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2009-05-18 14:45 ` janus at gcc dot gnu dot org
@ 2009-05-18 14:47 ` janus at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: janus at gcc dot gnu dot org @ 2009-05-18 14:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from janus at gcc dot gnu dot org  2009-05-18 14:47 -------
Fixed with r147663. Closing.


-- 

janus at gcc dot gnu dot org changed:

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


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


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

end of thread, other threads:[~2009-05-18 14:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-15 18:22 [Bug fortran/40164] New: Fortran 2003: "Arrays of procedure pointers" janus at gcc dot gnu dot org
2009-05-15 21:51 ` [Bug fortran/40164] " janus at gcc dot gnu dot org
2009-05-16 14:10 ` [Bug fortran/40164] Fortran 2003: "Arrays of procedure pointers" (using PPCs) janus at gcc dot gnu dot org
2009-05-18 14:45 ` janus at gcc dot gnu dot org
2009-05-18 14:47 ` janus at gcc dot gnu dot 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).