The semantic change seems to deal with the short-circuiting of if
statements. The G77 3.4.x behavior appears to be correct. According to
this document:
http://www.ibiblio.org/pub/languages/fortran/ch1-8.html
I poked through the release notes, but didn't see anything about this
change. Does this describe a change which occurred?
Here is a test program from my coworker:
g77 -fno-underscoring -g -fugly-logint fort2.f -o testcase
------fort2.f-------------------------
integer function child()
write (*, *) 'Gahh'
child = 1
end
subroutine parent
integer a
integer child
a = 0
c Is the second expression evaluated ?
c G77 3.3 - Says no
c G77 3.4 - Says yes
if(a.eq.1.and.child().eq.1) then
c do nothing
endif
return
end
program testcase
call parent
end
-------- end fort2.f ---------------------