¿Cómo hacer que gcc advierta acerca de devolver la dirección de las variables locales?

Congcc 4.4.5, tengo una advertencia con el siguiente código.

char *f(void)
{
    char c;
    return &c;
}

Pero, cuando uso un puntero temporal, ya no hay ninguna advertencia (incluso si el comportamiento es incorrecto).

char *f(void)
{
    char c;
    char *p = &c;
    return p;
}

He oído que el análisis de punteros es difícil en C, pero puedegcc advertir sobre tal código?

Respuestas a la pregunta(2)

Su respuesta a la pregunta