RFR: 8305590: Remove nothrow exception specifications from operator new [v2]
Kim Barrett
kbarrett at openjdk.org
Wed Apr 19 11:13:49 UTC 2023
On Wed, 19 Apr 2023 10:25:49 GMT, Afshin Zafari <duke at openjdk.org> wrote:
>> - The `throw()` (i.e., no throw) specifications are removed from the instances of `operator new` where _do not_ return `nullptr`.
>>
>> - The `-fcheck-new` is removed from the gcc compile flags.
>>
>> - The `operator new` and `operator delete` are deleted from `StackObj`.
>>
>> - The `GrowableArrayCHeap::operator delete` is added to be matched with its corresponding allocation`AnyObj::operator new`, because gcc complains on that after removing the `-fcheck-new` flag.
>> - The `Thread::operator new`with and without `null` return are removed.
>>
>> ### Tests
>> local: linux-x64 gtest:GrowableArrayCHeap, macosx-aarch64 hotspot:tier1
>> mach5: tiers 1-5
>
> Afshin Zafari has updated the pull request incrementally with one additional commit since the last revision:
>
> 8305590: Remove nothrow exception specifications from operator new
src/hotspot/share/prims/jvmtiRawMonitor.hpp line 114:
> 112:
> 113: // Non-aborting operator new
> 114: void* operator new(size_t size, const std::nothrow_t& nothrow_constant) throw() {
Hm, now I'm wondering why isn't an `operator delete` to go with this? Or are these objects
never deleted? Otherwise I'd have thought we'd get the same mismatched new/delete warning
you encountered elsewhere. If they're never supposed to be deleted, then giving `operator delete`
a deleted definition here seems appropriate, to prevent accidentally calling the CHeapObj function.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13498#discussion_r1171175550
More information about the build-dev
mailing list