https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112411
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- vec<> doesn't really support "large" vectors: unsigned m_alloc : 31; unsigned m_using_auto_storage : 1; unsigned m_num; so it's basically using 'int'. I guess we should make that alloc = (alloc * 3 / 2) use size_t though or simply do (alloc / 2) * 3 since we know alloc >= 16 here so the rounding error isn't important. Still ICEing on overflow here would be desirable.