MinGW не выдает предупреждений

Я успешно установил MinGW на 32-битную машину Windows 7 и попытался скомпилировать простую программу, используя либо командную строку, либо консоль MinGW.

В коде есть преднамеренная ошибка в выражении printf:

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

Командаgcc -Wall hello.c дает правильное предупреждение:hello.c: 7: 2: предупреждение: формат "% d" ожидает аргумент типа "int" ...

Но командаgcc -std=c99 -Wall hello.c не дает никаких предупреждений.

Оба создают исполняемый файлa.exe (который работает и дает тот же результат).

(Интересно командаgcc -std=gnu99 -Wall hello.c дает предупреждение.)

Я не знаю, является ли это ошибкой, или установка как-то пошла не так, но оба они кажутся маловероятными, так как компилятор работает и успешно скомпилировал большой проект (но это же предупреждение, конечно, пропускается при использовании -std = c99).

Мне должно быть не хватает какой-то информации.

(ps: если у кого-то установлена ​​новая версия MinGW, проверьте это.)

gcc версия 4.8.1 (GCC)

Обновление 1:

определяющий_GNU_SOURCE перед включениемstdio.h удаляет предупреждение даже приgcc -Wall hello.c.

Обновление 2 (может быть менее актуально):

составление

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

-std=c99 вывод флагов: 0,000000

-std=gnu99 выходы: 3.140000

И составление:

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

-std=gnu99 а также-std=c99 выход: 3.140000

Обновление 3:

Кажется, что затронуты следующие функции: printf, fprintf, snprintf, sprintf.

Ответы на вопрос(1)

Ваш ответ на вопрос