RFR: 8319233: AArch64: Build failure with clang due to -Wformat-nonliteral warning

Joachim Kern jkern at openjdk.org
Fri Nov 3 15:16:05 UTC 2023


On Fri, 3 Nov 2023 02:50:22 GMT, Hao Sun <haosun at openjdk.org> wrote:

> The root cause is that an incorrect variant of function VMError::report_and_die() is used. We should introduce another variadic function, just as macos_aarch64 did before.
> 
> GCC toolchain:
> From [1][2], GCC differs from Clang in flag -Wformat-nonliteral slightly, i.e. GCC may **not** raise a warning if "the format function takes its fromat arguments as a va_list". That's why this issue is not exposed by GCC toolchain before.
> 
> Besides, I suppose platforms ppc and risc-v may have the same issue.
> 
> [1] https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Warning-Options.html
> [2] https://releases.llvm.org/14.0.0/tools/clang/docs/DiagnosticsReference.html

During my switch to xlc17 I came across "error: format string is not a string literal" in several places. To fix this, I inserted lines like "DISABLED_WARNINGS_clang_aix_os_posix.cpp := format-nonliteral," in various places in the gmk files.  So in principle we have the problem too, but the compiler didn't show up an error in os_aix_ppc.cpp or vmError.cpp.

We will test your PR overnight in our test suite to check for regressions.

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

PR Comment: https://git.openjdk.org/jdk/pull/16486#issuecomment-1792622883


More information about the hotspot-dev mailing list