Visual C принимает неверное количество аргументов?

Почему это компилируется в Visual Studio:

void foo(int a) {}

int main() {
    foo(1,2);
}

Есть предупреждение

source_file.c(4) : warning C4020: 'foo' : too many actual parameters

но почему это не ошибка, как в случае с gcc / clang?

Мне известны определения функций в стиле K & R, но это относится только кfoo() который будет принимать переменное количество аргументов.

Цитаты из стандарта, позволяющие это сделать, будут очень благодарны.

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

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