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?