This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libfortran/52087] New: program does not follow logical rules
- From: "ryan.maclellan at ua dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 02 Feb 2012 00:17:28 +0000
- Subject: [Bug libfortran/52087] New: program does not follow logical rules
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52087
Bug #: 52087
Summary: program does not follow logical rules
Classification: Unclassified
Product: gcc
Version: 4.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libfortran
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: ryan.maclellan@ua.edu
Created attachment 26549
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26549
minimal source code to reproduce bug (5 lines)
The following program tests if the input logical variable is a valid logical
variable. It only behaves as expected if the two logical tests are separately
in () although from the order of operations I would expect it to work as is.
Incidentally, if I make nt_save .false. or interchange the true and false in
the if statement it does work without the ().
does not write:
program main
logical*4 nt_save/.true./
if ( nt_save.eqv..true. .or. nt_save.eqv..false. ) then
write(*,*) nt_save
endif
end
does write with
if ( (nt_save.eqv..true.) .or. (nt_save.eqv..false.) ) then