MinGW GCC: „Nieznany znak typu konwersji„ h ”” (snprintf)

Dobra, natknąłem się na dziwny problem kompilowania pliku C z MinGW (GCC 4.6.2) w systemie Windows 7. Ten plik zawiera następujący kod C:

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("%2hhX\n", 250);
    char c[80];
    snprintf(c, sizeof(c), "%2hhX", 250);
    printf("%s\n", c);
    return 0;
}

Kompilacja wygląda tak:

$ gcc.exe -std=c99 -pedantic -Wall test.c
test.c: In function 'main':
test.c:6:2: warning: unknown conversion type character 'h' in format [-Wformat]
test.c:6:2: warning: too many arguments for format [-Wformat-extra-args]

Dziwne jest to, że narzeka nasnprintf&nbsp;zadzwoń na linię 6, ale nie naprintf&nbsp;zadzwonić na linię 4. Czy czegoś brakuje lub czy ostrzeżenie jest nieprawidłowe? Jest też prawdopodobnie lepszy odpowiednik ciągu formatującego"%2hhX"? (Próbuję wydrukować zmienne znakowe jako wartości szesnastkowe.)