It is undefined behavior.
(C99, 6.5.2.2p6) "If the expression that denotes the called function has a type that does not include a prototype, [...] If the number of arguments does not equal the number of parameters, the behavior is undefined."
And we know from 6.9.1p7 that print
function does not provide a prototype.
C99, 6.9.1p7) "If the declarator includes a parameter type list, the list also specifies the types of all the parameters; such a declarator also serves as a function prototype for later calls to the same function in the same translation unit. If the declarator includes an identifier list,142) the types of the parameters shall be declared in a following declaration list."
As there is no constraint violation, no diagnostic message is required.