From dcl.constinit:
No diagnostic is required if no constinit declaration is reachable at the point of the initializing declaration.
What does it mean? I guess an example would be sufficient.
Something dynamically initialized is just ill-formed (from the same link), so it's not that.
Suppose you have one translation unit that declares a symbol to be
constinit
:Now suppose the translation unit that defined the symbol does not declare it
constinit
:You can compile and link these two files together without error, even though it doesn't do what you wanted, because
has_constinit
is being initialized dynamically.