2011-04-13 12 views
6

¿Cómo activo las advertencias de gcc para una declaración de devolución olvidada?Cómo activar las advertencias de gcc para una declaración de devolución olvidada?

Se supone que avisarme en casos como los siguientes:

int foo() { 
    std::cout << "haha"; 
} 

-Wall convierte esa advertencia, pero que permite también muchas otras advertencias.

+0

¿Usted intentó -Wextra/-ansi/-pedantic? – halfdan

+14

'-Wall' ¿permite demasiadas otras advertencias? Esa es una primera. – GManNickG

+0

Si tiene -Wall encendido demasiados, una alternativa sería cambiar los particulares que no se ajustan a su estilo de codificación. Aunque me gustaría saber cuáles tienes que no te dan comentarios valiosos sobre los problemas en tu código. –

Respuesta

18

De acuerdo con gcc de online documentation, -Wall convierte en:

 -Waddress 
     -Warray-bounds (only with -O2) 
     -Wc++0x-compat 
     -Wchar-subscripts 
     -Wenum-compare (in C/Objc; this is on by default in C++) 
     -Wimplicit-int (C and Objective-C only) 
     -Wimplicit-function-declaration (C and Objective-C only) 
     -Wcomment 
     -Wformat 
     -Wmain (only for C/ObjC and unless -ffreestanding) 
     -Wmissing-braces 
     -Wnonnull 
     -Wparentheses 
     -Wpointer-sign 
     -Wreorder 
     -Wreturn-type 
     -Wsequence-point 
     -Wsign-compare (only in C++) 
     -Wstrict-aliasing 
     -Wstrict-overflow=1 
     -Wswitch 
     -Wtrigraphs 
     -Wuninitialized 
     -Wunknown-pragmas 
     -Wunused-function 
     -Wunused-label  
     -Wunused-value  
     -Wunused-variable 
     -Wvolatile-register-var 

De ellos, -Wreturn-type parece que sería hacer el truco:

Advertir cada vez que una función se define con un tipo de retorno que por defecto es int. También advierte sobre cualquier declaración de devolución sin valor de retorno en una función cuyo tipo de devolución no es nulo (se considera que regresar al final del cuerpo de la función regresa sin un valor), y sobre una declaración de devolución con una expresión en un función cuyo tipo de retorno es nulo.

Sin embargo, si encender -Wall hace que su código tenga demasiadas advertencias, ¡le recomiendo que arregle su código!

+5

+1 por el consejo! –

-1

utilice siempre:

gcc -g -Wall -o -ansi -pedantic

Cuestiones relacionadas