RFR: JDK-8309219: Fix xlc17 clang 15 warnings in java.base [v2]

JoKern65 duke at openjdk.org
Wed Jun 7 09:03:27 UTC 2023


> This pr is a split off from JDK-8308288: Fix xlc17 clang warnings in shared code https://github.com/openjdk/jdk/pull/14146
> It handles the part in java.base.
> 
> Compiling on AIX with xlc17 which contains the new clang 15 frontend
> shows the following warnings.
> 
> built by make/modules/java.base/Lib.gmk
> 
> src/java.base/unix/native/libnet/DefaultProxySelector.c:378:41:22: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
> proxies = (*g_proxy_resolver_lookup)(resolver, uri, NULL, &error);
> ^
> 
> 
> src/java.base/unix/native/libnet/NetworkInterface.c:1612:24: error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith]
> end = (void *)nddp + size;
> 
> src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c:1251:7: error: '_ALLBSD_SOURCE' is not defined, evaluates to 0 [-Werror,-Wundef]
> #elif _ALLBSD_SOURCE
> The whole file checks whether _ALLBSD_SOURCE is defined, only where #elif is used the call to defined() was forgotten.
> 
> built by make/modules/java.base/lib/CoreLibraries.gmk
> 
> src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c:638 comparison of integers of different signs: 'int' and 'unsigned long'
> if (ret < sizeof(psinfo_t)) {
> ProcessHandleImpl_unix.c:  Just using the proper type `size_t` instead of `int`.
> 
> 
> src/java.base/aix/native/libjli/java_md_aix.c:42:38: error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith]
> addr < p->ldinfo_textorg + p->ldinfo_textsize) {
> we can fix this with temporary casting the `void*` pointer to `char*` or by disabling the warning in CoreLibraries.gmk
> 
> src/java.base/share/native/libzip/zlib/inffast.c:74:20: error: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
> void ZLIB_INTERNAL inflate_fast(strm, start)
> ^
> src/java.base/share/native/libjli/java.c:2311:22: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
> vfprintf(stderr, fmt, vl);
> ^~~
> 
> The test library libGetXSpace.c also shows a warning.
> In addition, the cast in that lib is wrong, we opened "[JDK-8309216](https://bugs.openjdk.org/browse/JDK-8309216) cast from jchar* to char* in test GetXSpace.java" for that.

JoKern65 has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits:

 - Merge branch 'master' into JDK-8309219
 - JDK-8309219

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

Changes: https://git.openjdk.org/jdk/pull/14281/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14281&range=01
  Stats: 12 lines in 6 files changed: 3 ins; 0 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/14281.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14281/head:pull/14281

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


More information about the core-libs-dev mailing list