This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: 970125-0.f
- To: law at cygnus dot com
- Subject: Re: 970125-0.f
- From: Craig Burley <burley at gnu dot org>
- Date: Mon, 1 Jun 1998 17:44:27 -0400 (EDT)
- CC: egcs-bugs at cygnus dot com
>Note that we have (ADDR_EXPR (ADDR_EXPR ...)) which seems more than
>a little strange to me.
In the general case, not any stranger than (ADDR_EXPR (PLUS_EXPR ...)),
which gcc has supported for years. (Making it possible for me to
rip a bunch of grody code out of g77, and apparently the changes
were driven by Kenner wanting to remove similar code from GNAT as well,
though maybe gpc drove this.)
Specifically, (ADDR_EXPR (ADDR_EXPR (VAR_DECL `foo'))) in, e.g., a
list of arguments, means "pass a pointer to the address of foo".
Or, "pass the address of foo by reference", which is how g77 really
looks at it.
But, as I said in email I just sent, g77 has a bit of a rats-nest
of bugs here, from incorrect documentation (which I've fixed, and will
submit later), to a non-portable test case (which I've asked Dave Love
to fix using a new version I sent him), to a bug that prevents the fixed
test case from compiling without crashing g77, to another bug that, even
when that's fixed, causes g77 to spuriously reject the fixed case for yet
another reason, etc.
So, the back end should be fixed here, since the end result of all
the fixes needed for g77 is that the new test will almost certainly
tell the back end pretty much the exact same thing as it does now.
tq vm, (burley)