C - gcc: nenhum aviso do compilador com declaração de função / implementação diferente

Eu tento descobrir por que meu compilador c não me dá nenhum aviso / erro ao seguir o código (simplificado).

A declaração da função não possui parâmetros, enquanto a implementação da função possui parâmetros:

some.h:

void foo();

Algum c:

static uint32_t count = 0; 

void foo(uint32_t num) {
    count += num;
    print("Count: %u");
}

main.c:

foo(100);
foo();

Resultado:

Count: 100
Count: 100

Compilador para construção de destino:

gcc-arm-none-eabi-4_9-2015q1-20150306-win32

Vinculador para criação de destino:

gcc-arm-none-eabi-4_9-2015q1-20150306-win32

Sinalizadores do compilador:

-Wall -Werror -DuECC_CURVE=uECC_secp256r1 -DMEMORY_CHECK -DDEBUG -Os -g3 -DBACKTRACE

questionAnswers(2)

yourAnswerToTheQuestion