On Tue, 27 Sep 2022 16:04:01 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:
>> After [JDK-8294281](https://bugs.openjdk.org/browse/JDK-8294281), it is now >> possible to disable warnings for individual files instead for whole >> libraries. I used this opportunity to go through all disabled warnings in >> hotspot. >> >> Any warnings that were only triggered in a few files were removed from >> hotspot as a whole, and changed to be only disabled for those files. >> >> Some warnings didn't trigger in any file anymore, and could just be removed. >> >> Overall, this reduced the number of disabled warnings by roughly half for >> gcc, clang and visual studio. The remaining warnings are sorted in >> "frequency", that is, the first listed warnings are triggered in the most >> number of files, while the last in the fewest number of files. So if anyone >> were to try to address the remaining warnings, it would make sense to chop >> of this list from the back. >> >> I believe the warnings that are disabled on a per-file basis can most likely >> be fixed relatively easily. >> >> I have verified this by Oracle's internal CI system, and GitHub Actions. >> (But I have not yet gotten a fully green run due to instabilities in GHA, >> however this patch can't reasonably have anything to do with that.) As >> always, warnings tend to differ a bit between compilers, so if someone wants >> to take this on a spin with some other version, please go ahead. If I missed >> some warning, in worst case we'll just have to add it back again, and in the >> meanwhile `configure --disable-warnings-as-errors` is an okay workaround. >> >> It also turned out that JDK-8294281 did not save the new per-file warnings >> in VarDeps, so I had to move $1_WARNINGS_FLAGS from $1_BASE_CFLAGS to >> $1_CFLAGS (and similar for C++). >> >> Annoyingly, the assert macro triggers >> `tautological-constant-out-of-range-compare` on clang, so while this is a >> single problem in a single file, this erupts all over the place in debug >> builds. If this can be fixed, the ugly extra `DISABLED_WARNINGS_clang += >> tautological-constant-out-of-range-compare` for non-release builds can be >> removed. > > Magnus Ihse Bursie has updated the pull request with a new target base due to > a merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains 19 additional > commits since the last revision: > > - Merge branch 'master' into hotspot-warnings-per-file > - Make "shift-negative-value" and "empty-body" globally disabled > - Add shift-negative-value for macroAssembler_arm.cpp, and re-sort lines > - Well this is not shell script. *duh* > - Add warnings for additional platforms (thanks shipilev!) > - Revert "Trigger GHA to compile with all warnings before aborting" > > This reverts commit 031acab542c0693d5ee4f90c6f94452206bbb203. > - Trigger GHA to compile with all warnings before aborting > - ppc64 triggers shift-negative-value on gcc :-( > - s390 triggers shift-negative-value on gcc :-( > - Remove zero warnings > - ... and 9 more: https://git.openjdk.org/jdk/compare/24315475...a558d378 Related: hopefully eliminating `sequence-point` warning with #10454. ------------- PR: https://git.openjdk.org/jdk/pull/10414