This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 970125-0.f



  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]