W.r.t. Kevin's question: if we wrote stage1 as follows:
stage1(){ . . . disable_car(); stage1_after_car(); }
How would people feel about that?
There are still real concerns in my mind about lingering addresses in registers that gcc might leave hanging around. The call nicely removes the worries.
ron