mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 15:24:07 +08:00
re PR fortran/36526 (pointer in pure function)
2008-06-25 Paul Thomas <pault@gcc.gnu.org> PR fortran/36526 * interface.c (check_intents): Correct error where the actual arg was checked for a pointer argument, rather than the formal. 2008-06-25 Paul Thomas <pault@gcc.gnu.org> PR fortran/36526 * gfortran.dg/proc_formal_proc_2.f90: New test. From-SVN: r137125
This commit is contained in:
parent
0edb82cb9f
commit
811d3cd3df
@ -1,3 +1,9 @@
|
||||
2008-06-25 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/36526
|
||||
* interface.c (check_intents): Correct error where the actual
|
||||
arg was checked for a pointer argument, rather than the formal.
|
||||
|
||||
2008-06-24 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/34371
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-06-25 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/36526
|
||||
* gfortran.dg/proc_formal_proc_2.f90: New test.
|
||||
|
||||
2008-06-25 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.c-torture/compile/20080625-1.c: New testcase.
|
||||
|
48
gcc/testsuite/gfortran.dg/pure_formal_proc_2.f90
Normal file
48
gcc/testsuite/gfortran.dg/pure_formal_proc_2.f90
Normal file
@ -0,0 +1,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" } }
|
Loading…
Reference in New Issue
Block a user