RFR: 8290373: Enable lossy conversion warnings on Windows
Jorn Vernee
jvernee at openjdk.org
Mon Jul 18 12:43:13 UTC 2022
On Sun, 17 Jul 2022 12:54:32 GMT, Julian Waters <jwaters at openjdk.org> wrote:
>> This patch enables lossy conversion warnings (C4244 [1]) for hotspot on Windows/MSVC. Instead of fixing all warnings that were produced from this, I've instead locally disabled the warning in the files that produced warnings. This allows gradually making progress with cleaning up these warnings on a per-file basis, instead of trying to fix all of them in one shot.
>>
>> Out of the ~1100 files that make up hotspot on Windows x64, ~290 have warnings for them disabled (not counting aarch64 files), which means that with this patch ~800 files are protected by enabling this warning globally.
>>
>> Warnings can be fixed in individual files, or groups of files in followup patches, and warnings for those files can be enabled.
>>
>> I'm working on a patch that does the same for GCC, but it produces warnings in about 150 more files (mostly linux/posix specific files), so I wanted to gather feedback on this approach before continuing with that.
>>
>> ---
>>
>> To disable warnings for a file, in most cases the following prelude is added after the last `#include` at the start of a file:
>>
>> PRAGMA_DIAG_PUSH
>> PRAGMA_ALLOW_LOSSY_CONVERSIONS
>>
>> And then the following is added at the end of the file for cpp files, or before closing the header guard for hpp files:
>>
>> PRAGMA_DIAG_POP
>>
>> 1 notable exception are files produced by adlc, which had their code-gen modified to add these lines instead. There were also 2 files that include headers in the middle of the file (ostream.cpp & sharedRuntime.cpp), for which I've added the PRAGMA's after the include block at the start of the file instead. They only included system headers, for which disabling warnings doesn't matter any ways.
>>
>> [1]: https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-levels-3-and-4-c4244?view=msvc-170
>
> Small question: What's the equivalent option to disable the same warning for gcc? (slightly related to https://bugs.openjdk.org/browse/JDK-8288293)
@TheShermanTanker It's `-Wconversion`. You will have to disable the warning for non-hotspot binaries to get the equivalent behavior. See this commit: https://github.com/openjdk/jdk/commit/44bebd84c041d62f374bfb6f61685d86e5e41518
-------------
PR: https://git.openjdk.org/jdk/pull/9516
More information about the build-dev
mailing list