On Mon, 26 Sep 2022 15:39:28 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 one 
> additional commit since the last revision:
> 
>   Trigger GHA to compile with all warnings before aborting

I ran all {x86_32, x86_64, aarch64, arm, powerpc64le, arm, riscv64} x {server} 
x {release,fastdebug} with GCC 10, and these are the new additions:


diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk
index fa1d44396df..915b175a649 100644
--- a/make/common/MakeBase.gmk
+++ b/make/common/MakeBase.gmk
@@ -195,7 +195,7 @@ $(eval $(call SetupLogging))
 
 
################################################################################
 
-MAX_PARAMS := 64
+MAX_PARAMS := 96
 PARAM_SEQUENCE := $(call sequence, 2, $(MAX_PARAMS))
 
 # Template for creating a macro taking named parameters. To use it, assign the
diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk
index ca38551c67d..7c37d5e2929 100644
--- a/make/hotspot/lib/CompileJvm.gmk
+++ b/make/hotspot/lib/CompileJvm.gmk
@@ -85,7 +85,7 @@ CFLAGS_VM_VERSION := \
 
 DISABLED_WARNINGS_gcc := ignored-qualifiers comment int-in-bool-context \
     array-bounds implicit-fallthrough parentheses missing-field-initializers \
-    delete-non-virtual-dtor unknown-pragmas maybe-uninitialized
+    delete-non-virtual-dtor unknown-pragmas maybe-uninitialized 
shift-negative-value
 
 DISABLED_WARNINGS_clang := ignored-qualifiers sometimes-uninitialized \
     missing-braces delete-non-abstract-non-virtual-dtor unknown-pragmas
@@ -162,9 +162,16 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
     DISABLED_WARNINGS_gcc_loopnode.cpp := sequence-point, \
     DISABLED_WARNINGS_gcc_macroArrayCopy.cpp := shift-negative-value, \
     DISABLED_WARNINGS_gcc_mulnode.cpp := shift-negative-value, \
+    DISABLED_WARNINGS_gcc_ad_ppc.cpp := empty-body, \
     DISABLED_WARNINGS_gcc_postaloc.cpp := address, \
     DISABLED_WARNINGS_gcc_sharedRuntimeTrig.cpp := misleading-indentation, \
+    DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_aarch64.cpp := 
misleading-indentation, \
+    DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_ppc.cpp := 
misleading-indentation, \
+    DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_riscv.cpp := 
misleading-indentation, \
     DISABLED_WARNINGS_gcc_shenandoahBarrierSetAssembler_x86.cpp := 
misleading-indentation, \
+    DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_aarch64.cpp := 
misleading-indentation, \
+    DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_ppc.cpp := 
misleading-indentation, \
+    DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_riscv.cpp := 
misleading-indentation, \
     DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1_x86.cpp := 
misleading-indentation, \
     DISABLED_WARNINGS_gcc_shenandoahBarrierSetC1.cpp := 
misleading-indentation, \
     DISABLED_WARNINGS_gcc_signals_posix.cpp := cast-function-type, \


Unfortunately, in s390x case, the warning is in `assembler_s390.hpp`, which 
means a lot of compilation units fail. Therefore I introduced 
`shift-negative-value` back. I did not remove the per-file 
`shift-negative-value`-s, though.

I shall deal with `misleading-indentation` the coding that produces these 
warnings some time later, maybe even ahead of this PR.

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

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

Reply via email to