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

--- Comment #27 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Jonathan Wakely
<r...@gcc.gnu.org>:

https://gcc.gnu.org/g:c5e12bbb45313df876ee2b81e418851822bed694

commit r13-8307-gc5e12bbb45313df876ee2b81e418851822bed694
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Tue Jan 9 15:22:46 2024 +0000

    libstdc++: Prefer posix_memalign for aligned-new [PR113258]

    As described in PR libstdc++/113258 there are old versions of tcmalloc
    which replace malloc and related APIs, but do not repalce aligned_alloc
    because it didn't exist at the time they were released. This means that
    when operator new(size_t, align_val_t) uses aligned_alloc to obtain
    memory, it comes from libc's aligned_alloc not from tcmalloc. But when
    operator delete(void*, size_t, align_val_t) uses free to deallocate the
    memory, that goes to tcmalloc's replacement version of free, which
    doesn't know how to free it.

    If we give preference to the older posix_memalign instead of
    aligned_alloc then we're more likely to use a function that will be
    compatible with the replacement version of free. Because posix_memalign
    has been around for longer, it's more likely that old third-party malloc
    replacements will also replace posix_memalign alongside malloc and free.

    libstdc++-v3/ChangeLog:

            PR libstdc++/113258
            * libsupc++/new_opa.cc: Prefer to use posix_memalign if
            available.

    (cherry picked from commit f50f2efae9fb0965d8ccdb62cfdb698336d5a933)
  • [Bug libstdc++/113258] Pre-C++1... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to