On Tue, 12 Nov 2024 14:30:05 GMT, Julian Waters <jwat...@openjdk.org> wrote:
> [JDK-8305590](https://bugs.openjdk.org/browse/JDK-8305590) removed > `-fcheck-new` when building with gcc. It turns out Visual Studio has a > similar option, though inverted in behavior and default. > > It seems like /Zc:throwingNew- (the default) corresponds to gcc -fcheck-new, > and /Zc:throwingNew corresponds to -fno-check-new (the default). > > The Visual Studio documentation strongly recommends using /Zc:throwingNew if > possible, as turning it off (the default) seriously bloats code and inhibits > optimizations. > https://learn.microsoft.com/en-us/cpp/build/reference/zc-throwingnew-assume-operator-new-throws?view=msvc-170 > > As mentioned in [JDK-8305590](https://bugs.openjdk.org/browse/JDK-8305590), > the standard says that an allocation function can report allocation failure > either by returning null (when it must have a nothrow exception > specification), or by throwing `std::bad_alloc` (so obviously must not be > declared as non-throwing). HotSpot allocation functions terminate the program > instead of throwing on allocation failure, so similarly don't need the result > checked for null. > > The documentation for /Zc:throwingNew is somewhat vague and confusing, so > some investigation is probably needed to verify it really has the desired > effect for us. I don't plan on integrating this yet. My intention is to let it run in Actions while I also test it locally. This is also dependent on some cleanup that has to be done in ADLC, where an operator new is currently causing issues with experimental enabling of C++17 ------------- PR Comment: https://git.openjdk.org/jdk/pull/22039#issuecomment-2470707299