http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57873
Bernhard <schlimmchen at yahoo dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Bernhard <schlimmchen at yahoo dot de> --- I investigated this a lot further and found that my explanation is reasonable, but the assembler obviously accounts for the stack manipulation prior to actually issuing the machine code for "call". The local variable on main's stack in my code example is actually preserved. I confirmed this using an UART output. My motivation to file this bug report was a problem in my much more complex software. As it now turns out it is suffering from a nasty side effect, which is related to local variables put on the stack and other functions operating on the addresses of those local variables. Lesson learned: Never buffer pointers referencing a location you do not control. Hence this bug report is plain invalid. Sorry for that.