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