[Bug fortran/59547] New: Problem with using tbp specification function in multiple class procedures
bugs@miller-mohr.de
gcc-bugzilla@gcc.gnu.org
Wed Dec 18 15:12:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59547
Bug ID: 59547
Summary: Problem with using tbp specification function in
multiple class procedures
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: bugs@miller-mohr.de
Created attachment 31470
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31470&action=edit
Error messages from gfortran 4.9.0
Hi,
this is a follow-up on http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59450. The
ICE reported there got fixed (thanks). Verified this with
GNU C version 4.9.0 20131217 (experimental).
However, there is still an issue with using a specification function in a class
procedure. When I use the function in multiple (tested with two) procedures, I
get errors on the function not being pure. However, when it is used in only one
procedure, this is not the case. The example I used is the following:
module classes
implicit none
type :: base_class
integer :: member
contains
procedure, nopass :: get_num
! either of the lines below alone works, but not both together
procedure :: get_array
procedure :: get_array2
end type
contains
pure integer function get_num()
get_num = 2
end function
function get_array( this ) result(array)
class(base_class), intent(in) :: this
integer, dimension( this%get_num() ) :: array
end function
function get_array2( this ) result(array)
class(base_class), intent(in) :: this
integer, dimension( this%get_num(), this%get_num() ) :: array
end function
end module
I get the attached errors.
Cheers
Marcus
More information about the Gcc-bugs
mailing list