This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]