RFR: 8377895: Create sizeof_auto, to reduce narrowing conversions [v2]
Leo Korinth
lkorinth at openjdk.org
Tue Feb 17 10:10:41 UTC 2026
On Mon, 16 Feb 2026 13:42:53 GMT, Leo Korinth <lkorinth at openjdk.org> wrote:
>> `sizeof_auto` is created so that we can reduce the amount of casting and thus make the code more type safe. The normal `sizeof` will return a `size_t` although the size of most stuff can be represented in a `uint8_t`. `sizeof_auto` will return the size in an as small unsigned type as is possible. The result is that expressions that uses `sizeof_auto` can convert to most integral types, and no explicit narrowing cast will be needed.
>>
>> The change in `cpCache.hpp` is an example where we would get an implicit narrowing warning (if we had those enabled) using normal `sizeof`, but where `sizeof_auto` will not make the expression a `size_t` .
>
> Leo Korinth has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix test for platforms that can not handle unsigned max sizes
I will also add a note on the exclusion of tests for larger than 31 bit tests on windows. The Microsoft compiler does allow dynamic allocations of large (bigger than 2 gig) arrays. However, it does not like such array expressions in other places like the `sizeof` expression that does not even reserve memory. I just want to make a note here.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/29716#issuecomment-3913601385
More information about the hotspot-dev
mailing list