Commit 6b44ad31 by Thomas Koenig

re PR fortran/32770 ([Meta-bug] -fdefault-integer-8 issues)

2007-08-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/32770
	* gfortran.dg/streamio_8.f90:  Adjust so test case passes
	for -fdefault-integer-8 and -fdefault-real-8.
	* gfortran.dg/streamio_10.f90:  Likewise.
	* gfortran.dg/sizeof.f90:  Likewise.

From-SVN: r127212
parent 867140ec
2007-08-04 Thomas Koenig <tkoenig@gcc.gnu.org> 2007-08-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/32770 PR fortran/32770
* gfortran.dg/streamio_8.f90: Adjust so test case passes
for -fdefault-integer-8 and -fdefault-real-8.
* gfortran.dg/streamio_10.f90: Likewise.
* gfortran.dg/sizeof.f90: Likewise.
2007-08-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/32770
* gfortran.dg/direct_io_2.f90: Implicitly declare integer * gfortran.dg/direct_io_2.f90: Implicitly declare integer
variables as kind=4 so they don't overflow the record length. variables as kind=4 so they don't overflow the record length.
...@@ -7,15 +7,21 @@ subroutine check_int (j) ...@@ -7,15 +7,21 @@ subroutine check_int (j)
logical :: l(6) logical :: l(6)
integer(8) :: jb(5,4) integer(8) :: jb(5,4)
if (sizeof (j) /= sizeof (i)) call abort
if (sizeof (jb) /= 2*sizeof (ib)) call abort if (sizeof (jb) /= 2*sizeof (ib)) call abort
if (sizeof(j) == 4) then
if (sizeof (j) /= sizeof (i)) call abort
else
if (sizeof (j) /= 2 * sizeof (i)) call abort
end if
ipa=>ib(2:3,1) ipa=>ib(2:3,1)
l = (/ sizeof(i) == 4, sizeof(ia) == 20, sizeof(ib) == 80, & l = (/ sizeof(i) == 4, sizeof(ia) == 20, sizeof(ib) == 80, &
sizeof(ip) == 4, sizeof(ipa) == 8, sizeof(ib(1:5:2,3)) == 12 /) sizeof(ip) == 4, sizeof(ipa) == 8, sizeof(ib(1:5:2,3)) == 12 /)
if (any(.not.l)) call abort if (any(.not.l)) call abort
if (sizeof(l) /= 6*sizeof(l(1))) call abort if (sizeof(l) /= 6*sizeof(l(1))) call abort
end subroutine check_int end subroutine check_int
...@@ -25,7 +31,7 @@ subroutine check_real (x, y) ...@@ -25,7 +31,7 @@ subroutine check_real (x, y)
target :: r target :: r
pointer :: rp pointer :: rp
double precision :: d(5,5) double precision :: d(5,5)
complex :: c(5) complex(kind=4) :: c(5)
if (sizeof (y) /= 5*sizeof (x)) call abort if (sizeof (y) /= 5*sizeof (x)) call abort
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
! Test case derived from that given in PR by Steve Kargl. ! Test case derived from that given in PR by Steve Kargl.
program stream_io_10 program stream_io_10
implicit none implicit none
integer :: a(4), b(4) integer(kind=4) :: a(4), b(4)
integer(kind=8) :: thepos integer(kind=8) :: thepos
a = (/ 1, 2, 3, 4 /) a = (/ 1, 2, 3, 4 /)
b = a b = a
......
...@@ -8,7 +8,7 @@ PROGRAM stream_io_8 ...@@ -8,7 +8,7 @@ PROGRAM stream_io_8
real(kind=8) r real(kind=8) r
mypos = 0 mypos = 0
mystring = "not yet" mystring = "not yet"
r = 12.25 r = 12.25d0
OPEN(UNIT=11, ACCESS="stream") OPEN(UNIT=11, ACCESS="stream")
inquire(unit=11, pos=mypos) inquire(unit=11, pos=mypos)
if (mypos.ne.1) call abort() if (mypos.ne.1) call abort()
...@@ -18,14 +18,14 @@ PROGRAM stream_io_8 ...@@ -18,14 +18,14 @@ PROGRAM stream_io_8
WRITE(11) "second" WRITE(11) "second"
inquire(unit=11, pos=mypos) inquire(unit=11, pos=mypos)
if (mypos.ne.12) call abort() if (mypos.ne.12) call abort()
WRITE(11) 1234567 WRITE(11) 1234567_4
inquire(unit=11, pos=mypos) inquire(unit=11, pos=mypos)
if (mypos.ne.16) call abort() if (mypos.ne.16) call abort()
write(11) r write(11) r
r = 0.0 r = 0.0
inquire (11, pos=mypos) inquire (11, pos=mypos)
read(11,pos=16)r read(11,pos=16)r
if (r.ne.12.25) call abort() if (abs(r-12.25d0)>1e-10) call abort()
inquire(unit=11, pos=mypos) inquire(unit=11, pos=mypos)
inquire(unit=11, access=mystring) inquire(unit=11, access=mystring)
if (mypos.ne.24) call abort() if (mypos.ne.24) call abort()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment