PR libstdc++/68210 adjust operator new and delete for LWG 206
authorJonathan Wakely <jwakely@redhat.com>
Fri, 10 Aug 2018 20:20:27 +0000 (21:20 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 10 Aug 2018 20:20:27 +0000 (21:20 +0100)
commitb66e5a95c0065fda3569a1bfd3766963a848a00d
tree53e48d628c8491683df2c3f5157fe66602679234
parent6894c57b1e2c9068471f26f3d8d4f3f374126f52
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.

From-SVN: r263478
20 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/doc/xml/manual/intro.xml
libstdc++-v3/libsupc++/del_op.cc
libstdc++-v3/libsupc++/del_opa.cc
libstdc++-v3/libsupc++/del_opant.cc
libstdc++-v3/libsupc++/del_opnt.cc
libstdc++-v3/libsupc++/del_ops.cc
libstdc++-v3/libsupc++/del_opsa.cc
libstdc++-v3/libsupc++/del_opva.cc
libstdc++-v3/libsupc++/del_opvant.cc
libstdc++-v3/libsupc++/del_opvnt.cc
libstdc++-v3/libsupc++/del_opvs.cc
libstdc++-v3/libsupc++/del_opvsa.cc
libstdc++-v3/libsupc++/new_op.cc
libstdc++-v3/libsupc++/new_opa.cc
libstdc++-v3/libsupc++/new_opant.cc
libstdc++-v3/libsupc++/new_opnt.cc
libstdc++-v3/libsupc++/new_opvant.cc
libstdc++-v3/libsupc++/new_opvnt.cc
libstdc++-v3/testsuite/18_support/new_nothrow.cc [new file with mode: 0644]