egcs snapshot crash with -O6 -- 970125-0.f (ADDRESSOF?)
Craig Burley
burley@gnu.org
Sat Apr 18 08:18:00 GMT 1998
Here's a little test case I've got that crashes egcs (and gcc 2.8.1)
in the 980328 snapshot, but not 1.0.1:
970125-0.f (compile with -O6 to trigger crash):
--------
integer*4 i4
integer*8 i8
integer*8 max4
data max4/2147483647/
i4 = %loc(i4)
i8 = %loc(i8)
print *, max4
print *, i4, %loc(i4)
print *, i8, %loc(i8)
call foo(i4, %loc(i4), i8, %loc(i8))
end
subroutine foo(i4, i4a, i8, i8a)
integer*8 i8
print *, i4, i4a
print *, i8, i8a
end
--------
I debugged just enough in the gcc 2.8.1 base to discover that
an ADDR_EXPR(ADDR_EXPR(VAR_DECL)) was causing a crash in, IIRC,
expand_expr, because an rtx ended up being an "addressof", which
was not accounted for in the switch statement. (Is this the
ADDRESSOF stuff people have talked about?)
(Haven't submitted this to gcc2 yet, because I haven't yet gotten
a version of g77 that sits in gcc 2.8 ready to put up for alpha-testing.
Maybe in the next week or so.)
tq vm, (burley)
P.S. Dave Love, could you add this test case to g77's `compile' set?
More information about the Gcc
mailing list