Utilizzando GCC, è possibile specificare un insieme di funzioni esenti da -Wframe-larger-than? (Per esempio, principale.)Con GCC, è possibile disabilitare -Wframe-maggiore di una funzione per funzione?
risposta
GCC vi fornisce con pragma per questo scopo:
http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
Attualmente non farà esattamente quello che vuoi, dal momento che sembra di farlo su un file base di file, ma nella prossima versione di gcc (4.6), sembra come se si è sensibili al contesto:
http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
è possibile utilizzare il GCC diagnostic pragma.
Questo è un po 'vecchio, ma mi sono imbattuto in essa cercando la stessa risposta, così ho pensato che avrei posto la mia soluzione (trovato per tentativi ed errori):
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wframe-larger-than="
void func()
{ int x[2000] = {}; printf("%d",x[1]); }
#pragma GCC diagnostic pop
sembra funzionare. Per qualche ragione, provare a usare diagnostic warning
non ha funzionato. Non sembra possibile modificare la dimensione dello stack che genera l'avviso. Inoltre, è necessario il = alla fine. Forse il prossimo ragazzo lo troverà e si salverà un po 'di tempo :). Questo è 4.6.2 (su un compilatore cross ARM).
John
- 1. Perché è possibile definire una funzione in un'altra funzione?
- 2. È possibile estendere una funzione in TypeScript?
- 3. È possibile utilizzare #define all'interno di una funzione? Per esempio,
- 4. È possibile rinominare una funzione AWS Lambda?
- 5. conflitto nome funzione GCC
- 6. È possibile decomporre una funzione Clojure?
- 7. std :: funzione per oggetto funzione MoveConstructible in gcc
- 8. Cosa significa "isra" per la funzione GCC?
- 9. Perché è possibile chiamare una funzione BoostBind con parametri aggiuntivi?
- 10. È possibile utilizzare una funzione lambda per un parametro template?
- 11. È possibile sostituire una funzione all'interno di una classe PHP?
- 12. In Clojure, è possibile definire una funzione anonima all'interno di una funzione anonima?
- 13. Come disabilitare una funzione dall'uso in PHP?
- 14. È possibile chiamare una funzione statistica R per ottimizzare la funzione C#
- 15. È possibile misurare la copertura della funzione con gcov?
- 16. È possibile applicare una funzione generica su elementi di tupla?
- 17. È possibile associare il secondo parametro di una funzione lambda?
- 18. È possibile implementare addressof() come funzione constexpr?
- 19. È possibile utilizzare una funzione di bash in diversi script?
- 20. MATLAB "echo on" all'interno di una funzione. È possibile?
- 21. È possibile definire una funzione locale in una query TSQL?
- 22. È possibile modificare la replica di una funzione in python?
- 23. È possibile limitare l'ambito di una funzione javascript?
- 24. this.offset non è una funzione all'interno di una funzione click
- 25. È possibile codificare una funzione generica di "sollevamento" in Haskell?
- 26. È possibile ottenere il nome di una funzione JavaScript anonima?
- 27. È possibile utilizzare il dcast senza una funzione di aggregazione?
- 28. È possibile avere una funzione di costruzione in un tratto?
- 29. È possibile dichiarare una funzione all'interno di GSP?
- 30. È possibile prendere l'indirizzo di una funzione ADL?
Può funzionare su base funzione per funzione. Dalla documentazione: "GCC tiene traccia dell'ubicazione di ciascun pragma e invia la diagnostica in base allo stato di quel punto nel file sorgente, quindi i pragma che si verificano dopo una riga non influiscono sulla diagnostica causata da quella linea." –
@Carl: In realtà, quei documenti sono per la versione di sviluppo corrente (4.6), quindi non è applicabile a 4.5, se si controlla il link che ho dato. –
oh ok. In realtà non ho visto nessuna versione di quel documento. Grazie per il chiarimento. –