MinGW GCC: “Carácter de tipo de conversión desconocido 'h'” (snprintf)

De acuerdo, me he encontrado con un problema extraño al compilar un archivo C con MinGW (GCC 4.6.2) en Windows 7. El archivo en cuestión contiene el siguiente código 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;
}

La compilación resulta así:

$ 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]

Ahora, lo que me extraña es que se queja de lasnprintf llame a la línea 6, pero no a laprintf llame a la línea 4. ¿Me falta algo o la advertencia es incorrecta? Además, ¿hay tal vez un mejor equivalente para la cadena de formato"%2hhX"? (Estoy tratando de imprimir las variables char como valores hexadecimales).

Respuestas a la pregunta(2)

Su respuesta a la pregunta