03-16-2018 Mark Doffman <mark.doffman@codethink.co.uk>
Jim MacArthur <jim.macarthur@codethink.co.uk> * gfortran.dg/automatic_1.f90: New test. * gfortran.dg/automatic_repeat.f90: New test * gfortran.dg/automatic_save.f90: New test. * gfortran.dg/vax_structure.f90: New test. From-SVN: r258584
This commit is contained in:
parent
64300da748
commit
9f3599c044
@ -1,3 +1,11 @@
|
||||
03-16-2018 Mark Doffman <mark.doffman@codethink.co.uk>
|
||||
Jim MacArthur <jim.macarthur@codethink.co.uk>
|
||||
|
||||
* gfortran.dg/automatic_1.f90: New test.
|
||||
* gfortran.dg/automatic_repeat.f90: New test
|
||||
* gfortran.dg/automatic_save.f90: New test.
|
||||
* gfortran.dg/vax_structure.f90: New test.
|
||||
|
||||
2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/78741
|
||||
|
31
gcc/testsuite/gfortran.dg/automatic_1.f90
Normal file
31
gcc/testsuite/gfortran.dg/automatic_1.f90
Normal file
@ -0,0 +1,31 @@
|
||||
! { dg-do run }
|
||||
! { dg-options "-O2 -fdec-static -fno-automatic" }
|
||||
subroutine foo (b)
|
||||
logical b
|
||||
integer i, j
|
||||
character*24 s
|
||||
automatic i
|
||||
if (b) then
|
||||
i = 26
|
||||
j = 131
|
||||
s = 'This is a test string'
|
||||
else
|
||||
if (i .eq. 26 .or. j .ne. 131) call abort
|
||||
if (s .ne. 'This is a test string') call abort
|
||||
end if
|
||||
end subroutine foo
|
||||
subroutine bar (s)
|
||||
character*42 s
|
||||
if (s .ne. '0123456789012345678901234567890123456') call abort
|
||||
call foo (.false.)
|
||||
end subroutine bar
|
||||
subroutine baz
|
||||
character*42 s
|
||||
! Just clobber stack a little bit.
|
||||
s = '0123456789012345678901234567890123456'
|
||||
call bar (s)
|
||||
end subroutine baz
|
||||
call foo (.true.)
|
||||
call baz
|
||||
call foo (.false.)
|
||||
end
|
8
gcc/testsuite/gfortran.dg/automatic_repeat.f90
Normal file
8
gcc/testsuite/gfortran.dg/automatic_repeat.f90
Normal file
@ -0,0 +1,8 @@
|
||||
! { dg-do compile }
|
||||
! { dg-options "-fdec-static" }
|
||||
! An AUTOMATIC statement cannot duplicated
|
||||
FUNCTION X()
|
||||
REAL, AUTOMATIC, AUTOMATIC :: Y ! { dg-error "Duplicate AUTOMATIC attribute" }
|
||||
y = 1
|
||||
END FUNCTION X
|
||||
END
|
8
gcc/testsuite/gfortran.dg/automatic_save.f90
Normal file
8
gcc/testsuite/gfortran.dg/automatic_save.f90
Normal file
@ -0,0 +1,8 @@
|
||||
! { dg-do compile }
|
||||
! { dg-options "-fdec-static" }
|
||||
! An AUTOMATIC statement cannot be used with SAVE
|
||||
FUNCTION X()
|
||||
REAL, SAVE, AUTOMATIC :: Y ! { dg-error "AUTOMATIC attribute conflicts with SAVE attribute" }
|
||||
y = 1
|
||||
END FUNCTION X
|
||||
END
|
27
gcc/testsuite/gfortran.dg/vax_structure_1.f90
Normal file
27
gcc/testsuite/gfortran.dg/vax_structure_1.f90
Normal file
@ -0,0 +1,27 @@
|
||||
! { dg-do compile }
|
||||
! { dg-options "-fdec-structure" }
|
||||
! Tests the VAX STRUCTURE and RECORD statements.
|
||||
! These are syntactic sugar for TYPE statements.
|
||||
|
||||
program vax_structure_1
|
||||
structure /stocklevel/
|
||||
integer*2 A
|
||||
integer*4 B
|
||||
integer*4 CS(0:15)
|
||||
byte D(0:15)
|
||||
end structure
|
||||
|
||||
record /stocklevel/ rec1, recs(100)
|
||||
integer x
|
||||
integer*2 y
|
||||
|
||||
rec1.A = 100
|
||||
recs(100).CS(10)=1
|
||||
x = 150
|
||||
y = 150
|
||||
|
||||
print *, rec1.B.eq.100
|
||||
print *, rec1.A.eq.x ! {dg-error "are INTEGER(2)/INTEGER(4)"}
|
||||
print *, rec1.A.eq.y
|
||||
print *, recs(100).CS(10)
|
||||
end program
|
Loading…
Reference in New Issue
Block a user