On Wed, Aug 19, 2015 at 10:08:01AM -0700, H.J. Lu wrote: > > Maybe something like (heavily cut'n'pasted): > > > > > > @deftypefn {Built-in Function} {void *} __builtin_argument_address (void) > > This function is similar to @code{__builtin_frame_address} with an > > argument of 0, but it returns the address of the incoming arguments to > > the current function rather than the address of its frame. > > This doesn't make senses when there is no argument or arguments > are passed in registers.
Sure, but see the weasel-words below ("The exact...") > To me, argument pointer is a virtual concept > and an implementation detail internal to GCC. I am not sure if another > compiler can implement it based on this description. The same is true for frame_address, on many machines. > > The exact definition of this address depends upon the processor and the > > calling convention. Usually some arguments are passed in registers and > > the rest on the stack, and this builtin returns the address of the first > > argument that is on the stack. Segher