On Thu, Jan 21, 2016 at 05:46:20PM +0000, Philip Martin wrote: > Stefan Sperling <[email protected]> writes: > > > Not objecting to this change, but I believe we do have a few > > batons on the stack in several places and I don't think this > > is a problem in general. > > It's perfectly acceptable to use a stack variable for a baton but it has > to be in the same scope as function call. In this case moving the stack > variable outside the if() block would have been an alternative solution. > > > The stack memory will be available until the function returns, > > which in this case is svn_cl__merge() i.e. the main entry point > > to the subcommand. > > > > The scope shouldn't matter since there's no garbage collection in C. > > The scope does matter: the C standard specifies that the lifetime of an > object "extends from entry into the block with which it is associated > until execution of that block ends" [6.2.4]. An optimising compiler is > free to reuse stack slots once out of scope, either for other stack > variables or for stack space to call a function.
Interesting. I stand corrected, thanks!

