È possibile chiamare una funzione e memorizzare il suo valore di ritorno nello stack successivo?
call foo(); // int foo();
store return value of foo in next stack frame;
call bar(int);
Certamente puoi fare una cosa del genere controllando dove i valori vengono inseriti nello stack, il che credo non sia il caso.
Se non lo fai, dipende dal codice sia di foo che di bar, dato che sono quelli che eseguono il codice. Se sono scritti correttamente, dovrebbero essere indipendenti e non puoi farlo.
Puoi comunque provare a trovare i gadget che ti consentono di accedere al valore di ritorno già premuto di foo () e provare a copiarlo nella posizione corretta prima di chiamare bar ().