]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR libstdc++/68210 adjust operator new and delete for LWG 206
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Aug 2018 20:20:27 +0000 (20:20 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Aug 2018 20:20:27 +0000 (20:20 +0000)
commit3ff09a404cbfddcf3d519658291ff6256bce3de6
tree53e48d628c8491683df2c3f5157fe66602679234
parent3e1f6cebe8d7da5f77f9cf31ae1a8cc7be7340e6
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263478 138bc75d-0d04-0410-961f-82ee72b054a4
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]