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