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

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Fri Aug 10 20:20:27 2018
New Revision: 263478

URL: https://gcc.gnu.org/viewcvs?rev=263478&root=gcc&view=rev
Log:
PR libstdc++/68210 adjust operator new and delete for LWG 206

Ensure that nothrow versions of new and delete call the ordinary
versions of new or delete, instead of calling malloc or free directly.

These files are all compiled with -std=gnu++14 so can use noexcept and
nullptr to make the code more readable.

        PR libstdc++/68210
        * doc/xml/manual/intro.xml: Document LWG 206 change.
        * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
        * libsupc++/del_opa.cc: Likewise.
        * libsupc++/del_opant.cc: Likewise.
        * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
        of free(ptr).
        * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
        * libsupc++/del_opsa.cc: Likewise.
        * libsupc++/del_opva.cc: Likewise.
        * libsupc++/del_opvant.cc: Likewise.
        * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
        instead of operator delete(ptr).
        * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
        * libsupc++/del_opvsa.cc: Likewise.
        * libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
        * libsupc++/new_opa.cc: Use nullptr instead of literal 0.
        * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
        with noexcept.
        * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
        malloc(sz).
        * libsupc++/new_opvant.cc: Use nullptr and noexcept.
        * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
        operator new(sz, nothrow).
        * testsuite/18_support/new_nothrow.cc: New test.

Added:
    trunk/libstdc++-v3/testsuite/18_support/new_nothrow.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/doc/xml/manual/intro.xml
    trunk/libstdc++-v3/libsupc++/del_op.cc
    trunk/libstdc++-v3/libsupc++/del_opa.cc
    trunk/libstdc++-v3/libsupc++/del_opant.cc
    trunk/libstdc++-v3/libsupc++/del_opnt.cc
    trunk/libstdc++-v3/libsupc++/del_ops.cc
    trunk/libstdc++-v3/libsupc++/del_opsa.cc
    trunk/libstdc++-v3/libsupc++/del_opva.cc
    trunk/libstdc++-v3/libsupc++/del_opvant.cc
    trunk/libstdc++-v3/libsupc++/del_opvnt.cc
    trunk/libstdc++-v3/libsupc++/del_opvs.cc
    trunk/libstdc++-v3/libsupc++/del_opvsa.cc
    trunk/libstdc++-v3/libsupc++/new_op.cc
    trunk/libstdc++-v3/libsupc++/new_opa.cc
    trunk/libstdc++-v3/libsupc++/new_opant.cc
    trunk/libstdc++-v3/libsupc++/new_opnt.cc
    trunk/libstdc++-v3/libsupc++/new_opvant.cc
    trunk/libstdc++-v3/libsupc++/new_opvnt.cc

Reply via email to