> 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/c21f1107...a558d378 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/10414/files - new: https://git.openjdk.org/jdk/pull/10414/files/355ed0d3..a558d378 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=10414&range=07 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10414&range=06-07 Stats: 4186 lines in 114 files changed: 2691 ins; 1270 del; 225 mod Patch: https://git.openjdk.org/jdk/pull/10414.diff Fetch: git fetch https://git.openjdk.org/jdk pull/10414/head:pull/10414 PR: https://git.openjdk.org/jdk/pull/10414