jacob navia said:
That is normal, but that is not a stack frame!
That is just increasing the stack, like when you use
alloca().
That function (alloca()) doesn't create a stack frame.
So you have some specific definition of the term "stack frame" in
mind, one that includes the storage reserved by an ordinary function
call, but that excludes the storage that might be reserved in other
circumstances, such as a call to an inline function or a call to the
non-standard alloca() function.
Perhaps you can tell us what this definition is, preferably by citing
the standard.
There are a number of ways that inline functions, and calls to them,
could be implemented. For that matter, I understand that not
generating a new stack frame is a fairly common optimization for calls
to some ordinary functions. I see no particular reason why allocating
a stack frame and executing a call instruction must be tied together;
either could be done without the other if it's convenient.
The gory details would, of course, be perfectly topical in some
system-specific newsgroup.