RFR: 8369187: Add wrapper for <new> that forbids use of global allocation and deallocation functions
Stefan Karlsson
stefank at openjdk.org
Wed Nov 12 07:43:06 UTC 2025
On Wed, 12 Nov 2025 05:49:27 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
> 8369187: Add wrapper for <new> that forbids use of global allocation and deallocation functions
>
> Please review this change that adds `cppstdlib/new.hpp` as a wrapper for
> including `<new>`. All existing inclusions of `<new>` are changed to include
> the new wrapper.
>
> In additional to including `<new>`, this wrapper also provides deprecation
> declarations to prevent the use of some facilities by HotSpot code.
>
> However, those deprecations need to be conditionalized to not apply to gtests,
> so this change also adds a macro definition provided by the build system for
> use in detecting that a header is being included by a gtest.
>
> Testing: mach5 tier1
src/hotspot/share/cppstdlib/new.hpp line 79:
> 77: // Visual Studio => error C2370: '...': redefinition; different storage class
> 78: #ifndef TARGET_COMPILER_visCPP
> 79: [[deprecated]] extern const size_t hardware_destructive_interference_size;
At cppreference this is declared as:
inline constexpr size_t hardware_destructive_interference_size
Is that why you're getting the Visual Studio error?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28250#discussion_r2517243907
More information about the build-dev
mailing list