C, and C++ (prior to C++11) use the optional keyword
auto for local variables.
auto meaning automatic, which is to say these variables are created automatically by entering into the scope in which they are declared, and destructed automatically by exiting out of that scope.
(With C++11 the keyword auto has been given new meanings.)
Am I correct in thinking that the correct phrase should be "Allocate to the Stack?"
Because local variables are automatically allocated, constructed, destructed and freed, I would prefer to simply call them "local variables" (in common vernacular) or automatic variables (in old C/C++ language terminology), but if I had to, I'd say "allocated on the stack".
When someone talks about "pushing (on)to the stack", for me at least, it evokes the notion of parameter passing, since with (parts of) many calling conventions, passing an actual argument may be done by such a push operation, especially when parameters overflow the argument registers. Such pushing is often ordered as are the actual arguments / formal parameters.
Though one problem will all of this is that a good compiler will prefer registers over memory when possible. A compiler is also free to sometimes use a register and other times use memory for the same variable, as long is it can keep that all straight (i.e. doesn't make some kind of error in doing that). It may reuse the same memory or the same register(s) for different local variables if it can determine their lifetime does not overlap.
So, sometimes local variables don't even get any stack space allocated at all because it is allocated to registers or reusing some existing memory.
I say the best terminology is to just call them local variables, or to describe them as declared locally.