https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91369
--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Another question is whether: constexpr int bar () { auto a = static_cast<int *> (::operator new (sizeof (int))); *a = 1; *a = *a + 2; int r = *a; ::operator delete (a); return r; } constexpr auto p = bar (); is valid or not (i.e. when there is no placement new at all, just static_cast and dereferencing of the pointer. Or if it is required to use std::allocator<int>::allocate for that, and in that case, does one need to use placement new or can it be dereferenced without it?