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