https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118400

--- Comment #11 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Jakub Jelinek
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:0faffd526d5dbed4960ef0aadc4ba96f9bf377de

commit r14-11284-g0faffd526d5dbed4960ef0aadc4ba96f9bf377de
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Jan 16 09:17:50 2025 +0100

    vec.h: Properly destruct elements in auto_vec auto storage [PR118400]

    For T with non-trivial destructors, we were destructing objects in the
    vector on release only when not using auto storage of auto_vec.

    The following patch calls truncate (0) instead of m_vecpfx.m_num clearing,
    and truncate takes care of that destruction:
      unsigned l = length ();
      gcc_checking_assert (l >= size);
      if (!std::is_trivially_destructible <T>::value)
        vec_destruct (address () + size, l - size);
      m_vecpfx.m_num = size;

    2025-01-16  Jakub Jelinek  <ja...@redhat.com>

            PR ipa/118400
            * vec.h (vec<T, va_heap, vl_ptr>::release): Call m_vec->truncate
(0)
            instead of clearing m_vec->m_vecpfx.m_num.

    (cherry picked from commit 43f4d44bebd63b354f8798fcef512d4d2b42c655)
  • [Bug ipa/118400] [14 Regression... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to