Given an example like
struct X { static constexpr const char *p = "foo"; }; static const char *q = X::p;
if this appears in more than one translation unit, must the value of q be the same in each? The implication of the one-definition rule would be that it must be, but current implementations do not give that result.