Fix libgomp Fortran tests

H. J. Lu hjl@lucon.org
Fri Sep 8 16:09:00 GMT 2006


On Fri, Sep 08, 2006 at 07:16:23AM -0700, Steve Kargl wrote:
> On Fri, Sep 08, 2006 at 03:27:00AM -0400, Jakub Jelinek wrote:
> > On Fri, Sep 08, 2006 at 12:20:15AM -0700, Brooks Moses wrote:
> > > >This can't be right.  The test really needs an integer with all bits set,
> > > >-huge(x) - 1 is Z'80000000'.  That's what the OpenMP standard mandates
> > > >that iand reduction var should be initialized to.
> > > 
> > > Indeed.  This should be x=-1.  Or, possibly more clearly, x=not(0).
> > 
> > Well, -1 only if you know it is two's complement, I believe Fortran standard
> > doesn't mandate that.  So not(0), but won't the FE do the compile time range
> > checking on it?  I.e. don't we have to write
> > x = 0
> > x = not(x)
> 
> The frontend may optimize the above, but it should be legal
> to do not(0) as long as -huge()-1 <= not <= huge().  If not,
> you can do it the hard way
> 
>   integer i, x
>   x = 0
>   do i = 1, bit_size(x)
>      x = ibset(x,i)
>   end do
> 
> BTW, does gcc run on any non-twos-complement hardware?
> 

Can't we just use (-2147483647 - 1)?


H.J.



More information about the Fortran mailing list