On Tue, 27 Sep 2022 10:48:20 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 incrementally with two 
> additional commits since the last revision:
> 
>  - Add warnings for additional platforms (thanks shipilev!)
>  - Revert "Trigger GHA to compile with all warnings before aborting"
>    
>    This reverts commit 031acab542c0693d5ee4f90c6f94452206bbb203.

Changes requested by kbarrett (Reviewer).

make/hotspot/lib/CompileJvm.gmk line 95:

> 93: 
> 94: DISABLED_WARNINGS_clang := ignored-qualifiers sometimes-uninitialized \
> 95:     missing-braces delete-non-abstract-non-virtual-dtor unknown-pragmas

Per JDK-9240259, -Wshift-negative-value should remain globally disabled, for
all of gcc and clang (and xlc, where it hasn't been removed).

Per discussion for JDK-8211073, -Wempty-body should remain globally disabled
for gcc.

As for the other gcc and clang warnings being removed from the globally
disabled lists, that looks okay to me. I'm particularly happy to see
-Wstrict-overflow removed from that list, and that we don't seem to have any
of those any more.

I've not looked at the changes to warnings for Windows.

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

PR: https://git.openjdk.org/jdk/pull/10414

Reply via email to