Not sure about intended. The 'JDK' variable naming was introduced to
basically mean not Hotspot. What flags that should apply to tests isn't
always clear. I don't think that flags currently assigned to variables
with JVM in the name should apply to hotspot tests. I think we just
treat all native tests the same here and give them the JDK flags. This
area could probably still need some careful sorting out and cleanup.
/Erik
On 7/10/25 08:23, Baesken, Matthias wrote:
When trying the GCC static analyzer (-fanalyzer flag)
diff --git a/make/autoconf/flags-cflags.m4 b/make/autoconf/flags-cflags.m4
index e80d9a98957..9d1ae60047b 100644
--- a/make/autoconf/flags-cflags.m4
+++ b/make/autoconf/flags-cflags.m4
@@ -610,7 +610,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
# CFLAGS WARNINGS STUFF
# Set JVM_CFLAGS warning handling
if test "x$TOOLCHAIN_TYPE" = xgcc; then
- WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
+ # enable -fanalyzer (but better only for gcc12 + , and also only
for C)
+ # too many strange / shaky fd leak warnings
+ WARNING_CFLAGS_JDK_CONLY="-fanalyzer -Wno-analyzer-fd-leak
$WARNINGS_ENABLE_ALL_CFLAGS"
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
I noticed that the WARNING_CFLAGS_JDK_CONLY go into the hotspot
jtreg tests, e.g. :
/jdk/test/hotspot/jtreg/runtime/ErrorHandling/libTestDwarfHelper.h:46:6:
error: dereference of NULL '0' [CWE-476]
[-Werror=analyzer-null-dereference]
46 | *x = 34; // Crash
| ~~~^~~~
'dereference_null': event 1
|
| 46 | *x = 34; // Crash
| | ~~~^~~~
| | |
| | (1) dereference of NULL '0'
This might be intended but I was surprised that the HS C tests take
WARNING_CFLAGS_JDK_CONLY !? Is this intended or not ?
Best regards, Matthias