Bug 15718 dispute: showstopper or WONTFIX?
Joe Buck
Joe.Buck@synopsys.COM
Wed Jun 2 01:11:00 GMT 2004
On Sat, May 29, 2004 at 07:24:22AM +0200, Gabriel Dos Reis wrote:
> Joe Buck <jbuck@welsh-buck.org> writes:
>
> | I don't want to get into a battle with RTH, who I have enormous
> | respect for. But it appears to me that the idea of closing bug
> | 15718 with WONTFIX is not an option.
> |
> | This bug apparently has the effect that some significant number
> | of Fortran programs that use complex numbers (that is, pretty
> | much any physics or electrical engineering code) are likely to
> | hit the ICE. This is a new ICE, not in 3.3.3. Saying that we
>
> The ICE is new, but the bug is an ABI bug that has been there,
> awaiting to be discovered by some constructs. Basically
> passing/returning complex numbers in registers was broken.
Since 3.3.4 shipped with this bug, we need a release note describing, in
user-level terms, how to avoid the bug.
We can't write "don't pass a __complex__ in a register". After all,
the following Fortran program (g77.f-torture/execute/19990826-2.f)
gets an ICE on the Alpha:
complex one, z
real a, f1
f1(z) = real(z)
one = (1.,0.)
a = f1(one)
if ( abs(a-1.0) .gt. 1.0e-5 ) then
write(6,*) 'A should be 1.0 but it is',a
call abort()
end if
end
g77.f-torture/execute/20010116.f is very similar.
Evidently Fortran inline functions (I forget what these beasties are
officially called) pass complex arguments in registers on the Alpha,
therefore such functions are completely broken.
More information about the Gcc
mailing list