consideran este código:¿Cómo hacer que gcc advierta sobre funciones desconocidas?
int function()
{
int a = 1 ;
int b = helper(&a);
return b ;
}
int main()
{
function();
return 0 ;
}
Este fragmento de código se compila en código objeto sin problema utilizando gcc, a pesar del hecho de que la función llamada 'ayudante' no se ha declarado. Sé que el enlazador debería detectar esto, pero he visto bugs oscuro que se resolvió una vez que se incluyeron los encabezados correctos (que contienen las declaraciones de funciones), a pesar de que el enlazador y el compilador no generaron ningún error.
Hay una serie de advertencias de gcc que parecen estar relacionadas, pero que en realidad no logran lo que quiero: -Withsing-prototypes, -Wmissing-declarations y -Wstrict-prototypes. Desafortunadamente, estas advertencias están limitadas a prototipos perdidos cuando las funciones globales son definidas, estoy interesado en advertencias sobre prototipos perdidos cuando las funciones globales son con referencia.
¿Alguien puede sugerir alternativas ?, gracias.
¡Sí !, ese es el que quiero :) –
Esto es habilitado por -Wall (que siempre se debe usar) y cuando se usa -std = c99. – ext
@ext sí, esto es lo que dice 'man gcc'. –