https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86850
--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> --- > diff --git a/gcc/vec.h b/gcc/vec.h > index f8c039754d2..407269c5ad3 100644 > --- a/gcc/vec.h > +++ b/gcc/vec.h > @@ -1688,7 +1688,7 @@ template<typename T> > inline void > vec<T, va_heap, vl_ptr>::splice (const vec<T, va_heap, vl_ptr> &src) > { > - if (src.m_vec) > + if (src.length ()) > m_vec->splice (*(src.m_vec)); > } I can confirm that ubsan GCC is not happy and no run-time error is reported.