https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65122
--- Comment #8 from Benoit Jacob <jacob.benoit.1 at gmail dot com> --- If there is a defect in the standard, isn't it in the part that forces the compiler to not use the useful type information that it has, that is, the above-quoted "the storage is obtained by calling ::operator new(std::size_t)" ?