(C89) 5.1.1.3 Diagnostics: A conforming implementation shall produce
at least one diagnostic message (...) for every translation unit that
contains a violation of any syntax rule or constraint.
I would read "constraint" to include the translation limits.
Your interpretation is incorrect. The term "constraint" itself is
specifically defined in the standard:
"restriction, either syntactic or semantic, by which the exposition of
language elements is to be interpreted".
Even more specifically, constraint violations are enumerated in the
standard by appearing in specifically labeled clauses. A program that
fails due to exceeding translation limits does not exhibit a
constraint violation, and no diagnostic is required.