970125-0.f
Jeffrey A Law
law@cygnus.com
Mon Jun 1 20:31:00 GMT 1998
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
More information about the Gcc-bugs
mailing list