RFR: 8357193: [VS 2022 17.14] Warning C5287 in debugInit.c: enum type mismatch during build

Sergey Bylokhov serb at openjdk.org
Mon May 19 05:28:50 UTC 2025


On Sun, 18 May 2025 23:44:13 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

> This patch suppresses compiler warning C5287 triggered in debugInit.c when building with Visual Studio 2022 version 17.14 (released a few days ago).
> 
> I’m simply disabling the warning to unblock the broken build. This change is intended to be backported to update releases.
> 
> A proper fix (e.g., explicit type cast) may be introduced later if necessary.

Unfortunately it cannot be suppressed by the cast due to bug in [VS2022](https://developercommunity.visualstudio.com/t/warning-C5287:-operands-are-different-e/10877942?space=21&sort=newest&viewtype=all&entry=myfeedback)

I can suppress it by extracting JVMTI_VERSION into local variable similar to how other code looks like:

>     jint version = JVMTI_VERSION;
>     jvmtiCompileTimeMajorVersion  = ( version & JVMTI_VERSION_MASK_MAJOR )
>                                         >> JVMTI_VERSION_SHIFT_MAJOR;
>     jvmtiCompileTimeMinorVersion  = ( version & JVMTI_VERSION_MASK_MINOR )
>                                         >> JVMTI_VERSION_SHIFT_MINOR;
>     jvmtiCompileTimeMicroVersion  = ( version & JVMTI_VERSION_MASK_MICRO )
>                                         >> JVMTI_VERSION_SHIFT_MICRO;

but it might be better just suppress it in the make file?

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

PR Comment: https://git.openjdk.org/jdk/pull/25293#issuecomment-2889662879


More information about the serviceability-dev mailing list