RFR: 8377658: G1: Cleanup g1ConcurrentMark.cpp for stricter warning flags

Leo Korinth lkorinth at openjdk.org
Fri Feb 13 11:00:11 UTC 2026


On Thu, 12 Feb 2026 20:18:33 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

>> Cleanup `g1ConcurrentMark.cpp` and included header files to remove implicit narrowing conversions.
>> 
>> For gcc: `-Wconversion -Wno-float-conversion`
>> For clang: `-Wimplicit-int-conversion`
>> 
>> `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.
>
> src/hotspot/share/gc/z/zBitField.hpp line 77:
> 
>> 75:   static ContainerType encode(ValueType value) {
>> 76:     assert(((ContainerType)value & (FieldMask << ValueShift)) == (ContainerType)value, "Invalid value");
>> 77:     return (ContainerType)(((ContainerType)value >> ValueShift) << FieldShift);
> 
> This change should not be done in a PR that sounds like it is only fixing G1. It needs its own PR with an explanation why it is needed.

It is only fixing g1, unfortunately `barrierSetConfig.inline.hpp` does include zgc headers.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/29701#discussion_r2803616651


More information about the hotspot-dev mailing list