https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120397
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
~_UninitDestroyGuard()
{
if (__builtin_expect(_M_cur != 0, 0))
std::_Destroy(_M_first, *_M_cur);
}
If we handle arrays here then it doesn't impact other uses of std::_Destroy
