re PR libfortran/34540 (cshift, eoshift, kind=1 and kind=2 arguments...)
2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/34540 * gfortran.dg/optional_dim_3.f90: New test. From-SVN: r131357
This commit is contained in:
parent
9b09c4dec4
commit
e39bd31393
|
@ -1,4 +1,9 @@
|
|||
2007-01-06 Tobias Burnus <burnus@net-b.de>
|
||||
2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libfortran/34540
|
||||
* gfortran.dg/optional_dim_3.f90: New test.
|
||||
|
||||
2008-01-06 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/34658
|
||||
* gfortran.dg/common_11.f90: New.
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
! { dg-do run }
|
||||
! PR34540 cshift, eoshift, kind=1 and kind=2 arguments.
|
||||
! Test case thanks to Thomas Koenig.
|
||||
module tst_foo
|
||||
implicit none
|
||||
contains
|
||||
subroutine tst_optional(a,n1,n2)
|
||||
integer(kind=1), intent(in), optional:: n1
|
||||
integer(kind=2), intent(in), optional:: n2
|
||||
integer(kind=1), dimension(2) :: s1
|
||||
character(64) :: testbuf
|
||||
real, dimension(:,:) :: a
|
||||
s1 = (/1, 1/)
|
||||
write(testbuf,'(4F10.2)') cshift(a, shift=s1)
|
||||
if (testbuf /= " 2.00 1.00 4.00 3.00") CALL abort
|
||||
write(testbuf,'(4F10.2)') cshift(a,shift=s1,dim=n2)
|
||||
if (testbuf /= " 2.00 1.00 4.00 3.00") CALL abort
|
||||
write(testbuf,'(4F10.2)') eoshift(a,shift=s1,dim=n1)
|
||||
if (testbuf /= " 2.00 0.00 4.00 0.00") CALL abort
|
||||
write(testbuf,'(4F10.2)') eoshift(a,shift=s1,dim=n2)
|
||||
if (testbuf /= " 2.00 0.00 4.00 0.00") CALL abort
|
||||
end subroutine tst_optional
|
||||
subroutine sub(bound, dimmy)
|
||||
integer(kind=8), optional :: dimmy
|
||||
logical, optional :: bound
|
||||
logical :: lotto(4)
|
||||
character(20) :: testbuf
|
||||
lotto = .false.
|
||||
lotto = cshift((/.true.,.false.,.true.,.false./),1,dim=dimmy)
|
||||
write(testbuf,*) lotto
|
||||
if (trim(testbuf).ne." F T F T") call abort
|
||||
lotto = .false.
|
||||
lotto = eoshift((/.true.,.true.,.true.,.true./),1,boundary=bound,dim=dimmy)
|
||||
lotto = eoshift(lotto,1,dim=dimmy)
|
||||
write(testbuf,*) lotto
|
||||
if (trim(testbuf).ne." T T F F") call abort
|
||||
end subroutine
|
||||
end module tst_foo
|
||||
|
||||
program main
|
||||
use tst_foo
|
||||
implicit none
|
||||
real, dimension(2,2) :: r
|
||||
integer(kind=1) :: d1
|
||||
integer(kind=2) :: d2
|
||||
data r /1.0, 2.0, 3.0, 4.0/
|
||||
d1 = 1_1
|
||||
d2 = 1_2
|
||||
call tst_optional(r,d1, d2)
|
||||
call sub(bound=.false., dimmy=1_8)
|
||||
call sub()
|
||||
end program main
|
Loading…
Reference in New Issue