This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: g77 3.4.(2|3): Failure when calling gcc 3.4.(2|3) functions
To follow up on this, it appears we've tracked down the problem. It was
a combination of a semantic change in g77 and an insubordinate copy of
gdb.
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 ---------------------
Thanks again! Oh... and g77, rocks, btw... besides this one minor
issue, I've never had a problem with it. I'm looking forward to
gfortran! Keep up the excellent work!
- Sam