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.

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

Commit messages:
 - Remove zero warnings
 - Trim down microsoft list from 11 to 4 disabled warnings in hotspot
 - FIx shenandoah on gcc
 - Fix linux-aarch64-debug
 - Warning flags need to be not on base flag, otherwise it does not get updated 
with VarDeps
 - Incrase max params
 - Fix failure on GHA
 - Fix macos-aarch64-debug builds
 - Trim down gcc list from 18 to 10 disabled warnings in hotspot
 - Trim down clang list from 12 to 5 disabled warnings in hotspot

Changes: https://git.openjdk.org/jdk/pull/10414/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10414&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8294314
  Stats: 53 lines in 4 files changed: 33 ins; 5 del; 15 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

Reply via email to