This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: 970125-0.f
- To: Craig Burley <burley at gnu dot org>
- Subject: Re: 970125-0.f
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Mon, 01 Jun 1998 21:30:45 -0600
- cc: egcs-bugs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199806012144.RAA08793@melange.gnu.org>you write:
> >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.)
So what does it mean to have ADDR_EXPR (PLUS_EXPR ...))). Do you
put the result of the PLUS_EXPR into a stack slot, then take it's
address?
> 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.
OK. So you want/need the pointer to foo shoved into a stack slot
and we pass the address of the stack slot? I can do that, though I
don't see how it's useful :-)
jeff