blob: ec7d06eec78994ff03f674c84732b020ef202ba0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
! { dg-do compile }
! Tests the fix for PR36526, in which the call to getStrLen would
! generate an error due to the use of a wrong symbol in interface.c
!
! Contributed by Bálint Aradi <aradi@bccms.uni-bremen.de>
!
module TestPure
implicit none
type T1
character(10) :: str
end type T1
contains
pure function getT1Len(self) result(t1len)
type(T1), pointer :: self
integer :: t1len
t1len = getStrLen(self%str)
end function getT1Len
pure function getStrLen(str) result(length)
character(*), intent(in) :: str
integer :: length
length = len_trim(str)
end function getStrLen
end module TestPure
program Test
use TestPure
implicit none
type(T1), pointer :: pT1
allocate(pT1)
pT1%str = "test"
write (*,*) getT1Len(pT1)
deallocate(pT1)
end program Test
! { dg-final { cleanup-modules "TestPure" } }
|