Usando GCC, ¿es posible especificar un conjunto de funciones que están exentas de -Wframe-larger-than? (Por ejemplo, principal.)Con GCC, ¿puedo desactivar -WCM-más grande que por función?
Respuesta
CCG le suministra pragmas para este propósito:
http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
Actualmente no va a hacer exactamente lo que quiere, ya que parece que hacerlo en un archivo base de archivos, pero en la próxima versión de gcc (4.6), parece como si es sensible al contexto:
http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
puede utilizar el GCC diagnostic pragma.
Esto es un poco viejo, pero me encontré con él en busca de la misma respuesta, así que pensé que había puesto mi solución (que se encuentra por ensayo y error):
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wframe-larger-than="
void func()
{ int x[2000] = {}; printf("%d",x[1]); }
#pragma GCC diagnostic pop
parece funcionar. Por alguna razón, intentar usar diagnostic warning
no funcionó. No parece posible cambiar el tamaño de la pila que genera la advertencia. Además, necesitas el = al final. Tal vez el próximo chico lo encuentre y se ahorre algo de tiempo :). Esto es 4.6.2 (en un compilador cruzado ARM).
John
- 1. ¿Qué tan grande es wchar_t con GCC?
- 2. Desactivar todas las advertencias gcc
- 3. desactivar advertencias específicas en gcc
- 4. ¿Cómo puedo desactivar la vectorización mientras uso GCC?
- 5. ¿Puedo desactivar el lienzo acelerado por hardware de Javascript?
- 6. GCC función fastcall definición
- 7. SQL COUNT * GRUPO POR grande que,
- 8. ¿GCC alineará una función que toma un puntero?
- 9. ¿Por qué gcc informa "declaración implícita de la función 'ronda'"?
- 10. ¿Cómo puedo decirle a gcc que no ponga en línea una función?
- 11. ¿Cómo puedo desactivar _moz_resizing?
- 12. ¿Una función es más grande que una matriz?
- 13. Cómo desactivar indicadores de optimización específicos en gcc
- 14. Desactivar temporalmente la advertencia de gcc en la redefinición
- 15. Puntero de función con GCC, asignando una dirección
- 16. ¿Por qué es GHC tan grande/grande?
- 17. Desactivar la advertencia de gcc para las opciones incompatibles
- 18. ¿Por qué el compilador de C++ (gcc) piensa que la función es campo 'virtual'?
- 19. Función de llamada C con diferente puntero de pila (gcc)
- 20. ¿Cómo puedo desactivar Java basurero?
- 21. ¿Por qué el error "Redefinición de typedef" con GCC 4.3 pero no con GCC 4.6?
- 22. ¿Puedo separar un dll grande en 1 dll por clase?
- 23. conflicto de nombre de función de GCC
- 24. ¿Por qué no puedo encontrar gcc mi biblioteca estática?
- 25. ¿Puedo desactivar HttpSession en web.xml?
- 26. función onclick Desactivar el código de imagen
- 27. gcc: advertencia: entero grande truncado implícitamente al tipo sin signo
- 28. ¿Por qué GCC mantiene las funciones vacías?
- 29. Evaluación parcial/especialización con LLVM-gcc o gcc
- 30. Valor de relleno de función de GCC
Puede funcionar función por función. De los documentos: "GCC realiza un seguimiento de la ubicación de cada pragma y emite diagnósticos de acuerdo con el estado a partir de ese punto en el archivo de origen. Por lo tanto, los pragmas que ocurren después de una línea no afectan los diagnósticos causados por esa línea". –
@Carl: en realidad, esos documentos son para la versión de desarrollo actual (4.6), por lo que no es aplicable a 4.5, si revisas el enlace que di. –
oh ok. No vi ninguna versión en ese documento, en realidad. Gracias por la aclaración. –