> From: Johannes Berg > Sent: 08 February 2017 12:24 ... > Btw, what's causing this to start with? Can't the compiler reuse the > stack places? Only if it realises they've gone out of scope - which probably doesn't happen when the functions are inlined. The address of the parameter can be saved by the calling function and used in a later call. Something like this is valid: int foo(int *p, int v) { static int *sv; int old = -1; if (sv) {old = *sv; *sv = v;} sv = v; return old; } void bar(...) { int a, b; ... foo(&a, 0); ... foo(&b, 1); ... foo(NULL, 2); ... If the compiler starts sharing stack it all goes wrong. David ��.n��������+%������w��{.n�����������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f