OK, La migliore risposta che posso offrire.
http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html dice "no", per omissione. Non c'è documentazione di nulla per iniettare il codice di cancellazione dello stack nell'output.
Da quanto ho potuto intuire, l'unico modo questo potrebbe funzionare, è quello di iniettare codice memset
like (forse semplice come pochi mov
operazioni, ma comunque) nell'inizio di ogni frame lessicale incorporato in cui un la variabile automatica viene creata. Il più vicino che posso dire - e io sono lontano da da un esperto sulla parte interna di GCC, ma - non sembra esserci nulla documentato che lo farebbe.
In seguito ulteriormente questo, il gccint.pdf PDF di GCC Internals (http://gcc.gnu.org/onlinedocs/gccint.pdf) a pagina 361 definisce che il nome GCC per la fase di chiamata regolazione puntatore riquadro all'ingresso di una funzione è prologue
. (Non so davvero/capire se questo si applica ad altri ambiti lessicali all'interno di una funzione, comunque.) Poiché ciò dovrebbe accadere in un file Machine Definition (md), qualsiasi opzione di questo tipo sarebbe sembrare da definire per un Architettura della CPU. Ho analizzato il ViewCVS online al numero http://gcc.gnu.org/viewcvs/trunk/gcc/config/i386/ e ho trovato (almeno una) copia di prologue
attorno alla riga 11.893 di i386.md, che dopo aver eseguito l'espansione della ricerca per la funzione qualche luppolo, non sembra avere nulla da emettere un codice condizionale come quello
Ma questa roba sotto-GCC's-cappuccio è un pò ordinata ...
'-Wextra' è grande per le nuove basi di codice che non dispongono già di 3 milioni di linee di codice. :) –
Non posso credere che l'inizializzazione sia scritta "initialialize" nei documenti del compilatore. –
@AndrewMarshall: Ha! Non me ne sono nemmeno accorto. È scritto in quel modo, anche se xlc è piuttosto vecchio. L'attuale [guida in linea] (http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.vacpp7a.doc%2Fcompiler%2Fref%2Fruoptini.htm) non ha quell'errore –