| ! { 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 |