https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117280
--- Comment #1 from Jiang An <de34 at live dot cn> --- I've realize that the original example seems invalid because the temporary object shouldn't be usable in constant evaluations (as it's of a volatile type due to reference binding). But this one (accidently?) has the same effects. ``` struct S { const int& ref; }; constexpr int n = 42; constexpr volatile S s{n}; static_assert(s.ref == 42, ""); ```