public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/53956] New: Proc-pointer w/ interface: Bogus "EXTERNAL attribute conflicts with FUNCTION attribute"
@ 2012-07-13 18:26 burnus at gcc dot gnu.org
  2012-07-13 18:57 ` [Bug fortran/53956] " janus at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-07-13 18:26 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 53956
           Summary: Proc-pointer w/ interface: Bogus "EXTERNAL attribute
                    conflicts with FUNCTION attribute"
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: burnus@gcc.gnu.org
                CC: janus@gcc.gnu.org


Found at comp.lang.fortran,
cf. http://www.rhinocerus.net/forum/lang-fortran/709699-sort-2d-matrix-2.html
or
https://groups.google.com/forum/?fromgroups#!topic/comp.lang.fortran/kfOR7y1bI0Q

The original example has been written by James Van Buskirk - see thread.

The following program gives the bogus error when the procedure pointer is
invoked. Without procedure pointer or - for the dummy argument - using
"procedure(integer)" instead of "integer, external" (which is semantically
identically), works.

program testme
              1   
Error: EXTERNAL attribute conflicts with FUNCTION attribute in 'comparator2' at
(1)


module m
contains
  function compare()
    integer :: compare
    compare = 42
  end function compare
  subroutine print_it(x)
    procedure(integer) :: x
    print *, x()
  end subroutine print_it
end module m

program testme
  use m
  implicit none
  interface
    subroutine sub(comparator2)        ! <<< related to those
      integer, external :: comparator2 ! <<< lines
    end subroutine sub
  end interface
  procedure(sub), pointer :: fp  ! << but the interface might be involved
  fp => print_it
  call fp (compare)   ! <<< Triggers the error
end program testme


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

end of thread, other threads:[~2012-07-16 10:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-13 18:26 [Bug fortran/53956] New: Proc-pointer w/ interface: Bogus "EXTERNAL attribute conflicts with FUNCTION attribute" burnus at gcc dot gnu.org
2012-07-13 18:57 ` [Bug fortran/53956] " janus at gcc dot gnu.org
2012-07-13 20:50 ` janus at gcc dot gnu.org
2012-07-14 13:01 ` janus at gcc dot gnu.org
2012-07-16  8:46 ` [Bug fortran/53956] [F03] PROCEDURE " janus at gcc dot gnu.org
2012-07-16 10:13 ` janus at gcc dot gnu.org
2012-07-16 10:17 ` 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).