This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [patch, libgfortran] FIX PR19543 formatted output for logical(8) variables
- From: Jerry DeLisle <jvdelisle at verizon dot net>
- To: Fortran List <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Cc: Tobias Schlueter <Tobias dot Schlueter at Physik dot Uni-Muenchen dot DE>
- Date: Fri, 03 Feb 2006 22:17:31 -0800
- Subject: Re: [patch, libgfortran] FIX PR19543 formatted output for logical(8) variables
- References: <43E43F8A.2050107@verizon.net>
Jerry DeLisle wrote:
The attached patch is a possible fix for this PR. It is obvious and
simple and is probably a work around for the underlying problem in PR
20066.
I noticed that the values being passed to write_logical are correct so I
suspected the problem was types.
Blah, never mind. I see it does not work in all cases.
I still think that the types matching should be done though.
I realize that Tobi is working on the other part of this, was just curious
looking at it. This case is weird. If I comment out the two test lines the
prints come out correctly. If I allow the test lines, the prints come out wrong.
Heisenberg Uncertainty Principle. :)
Jerry
program test
implicit none
logical(1), parameter :: t1 = .TRUE., f1 = .FALSE.
logical(2), parameter :: t2 = .TRUE., f2 = .FALSE.
logical(4), parameter :: t4 = .TRUE., f4 = .FALSE.
logical(8), parameter :: t8 = .TRUE., f8 = .FALSE.
character*2 :: t(4), f(4)
write(t(1),*) t1
write(f(1),*) f1
write(t(2),*) t2
write(f(2),*) f2
write(t(3),*) t4
write(f(3),*) f4
write(t(4),*) t8
write(f(4),*) f8
print *, t
print *, f
! if (any(t .ne. "T")) call abort
! if (any(f .ne. "F")) call abort
end
Heisenberg Uncertainty Principle. :)
Jerry