Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/proc_ptr_50.f90 @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
! { dg-do compile } ! ! Test the fix for PR86242, in which the procedure pointer in 'tester' ! was being copied as if it were an allocatable class component. ! ! Contributed by <cfd@mnet-mail.de> ! module test implicit none private public :: tester type :: wrapper integer(4) :: n end type wrapper type :: output real(8) :: dummy end type output type :: tester class(wrapper), allocatable :: wrap procedure(proc1), pointer :: ptr => null() end type tester abstract interface function proc1(self) result(uc) import :: tester, output class(tester), intent(in) :: self class(output), allocatable :: uc end function proc1 end interface end module test ! Comment #2 from Janus Weil <janus@gcc.gnu.org> module test1 implicit none type :: output end type type :: tester integer, allocatable :: wrap procedure(proc1), pointer, nopass :: ptr end type interface ! Originally abstract function proc1() result(uc) import :: output class(output), allocatable :: uc ! Works if a pointer end function end interface ! PR82969 from Gerhard Steinmetz <gscfq@t-online.de> type t real, allocatable :: x(:) procedure(f), nopass, pointer :: g end type contains function f() result(z) class(t), allocatable :: z end end module test1