MinGW não produz avisos

Instalei o MinGW com êxito em uma máquina Windows 7 de 32 bits e tentei compilar um programa simples usando a linha de comando ou o console do MinGW.

O código possui um erro intencional em uma instrução printf:

#include <stdio.h>
#include <stdlib.h>
int main( void )
{
    printf("%d\n" , 3.14 ) ;
return 0 ;
}

O comandogcc -Wall hello.c emite um aviso correto:hello.c: 7: 2: warning: o formato '% d' espera um argumento do tipo 'int' ...

Mas o comandogcc -std=c99 -Wall hello.c não dá nenhum aviso.

Ambos criam um executávela.exe (que é executado e fornece o mesmo resultado).

(Curiosamente, um comandogcc -std=gnu99 -Wall hello.c emite o aviso.)

Não sei se isso é um erro ou a instalação deu errado de alguma forma, mas ambos parecem improváveis, pois o compilador funciona e compilou com êxito um projeto maior (mas o mesmo aviso, é claro, omitido ao usar -std = c99).

Devo estar faltando alguma informação.

(ps: se alguém tiver uma nova instalação do MinGW, teste isso.)

gcc versão 4.8.1 (GCC)

Atualização 1:

Definindo_GNU_SOURCE antes de incluirstdio.h remove o aviso mesmo comgcc -Wall hello.c.

Atualização 2 (pode ser menos relevante):

Compilando

 printf("%lf\n" , 3.14 ) ;

-std=c99 saídas de sinalização: 0.000000

-std=gnu99 saídas: 3.140000

E compilando:

 printf("%f\n" , 3.14 ) ;

-std=gnu99 e-std=c99 saída: 3.140000

Atualização 3:

As funções que parecem ser afetadas são: printf, fprintf, snprintf, sprintf.

questionAnswers(1)

yourAnswerToTheQuestion