This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: GCC 3.1 Prerelease


John David Anglin wrote:

> Fortran:
> 
> PR6138: Incorrect access of interger*1 variables on PA.
> 
> This is a regression from 3.0.x, and it also affects powerpc. In my opinion,
> it is a verious serious bug affecting many programs and should be fixed
> before the 3.1 release.  The problem is in the front-end, in code that
> I am not familiar with.

This and PR Fortran/6304 are indeed the only Fortran *regressions* I'm
aware of.  Whether this one affects a lot of people is open to debate:
In my experience not many are using the INTEGER*1 extension (mostly
because its support in g77 is not complete).

I'm not entirely sure it's a bug in the frontend; however, in the four
hours I spent on it yesterday I was unable to find a C equivalent for
the following, minimal, example of the problem:

      integer*2 j
      integer*1 k
      j = -9
      k = j
      if (k .ne. j) call abort
      print*,j
      end

[ The `print*,j' line is necessary because it forces gcc to store
  j on the stack - which leads to the access error. ]

The problem is hard to track down - already the .f.00.rtl dump is wrong
when optimizing (another hint that it might be a bug in the frontend -
however, that means that we have to explain how the frontend can
generate different RTL based on optimization flags) ...

Affects powerpc and hppa.

Hope this helps,

-- 
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
Join GNU Fortran 95: http://g95.sourceforge.net/ (under construction)


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