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>
|
2008-06-24 Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/34371
|
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>
|
2008-06-25 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
* gcc.c-torture/compile/20080625-1.c: New testcase.
|
* 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