On Sun, 20 Apr 2025 02:16:50 GMT, Yasumasa Suenaga <ysuen...@openjdk.org> wrote:
> I tried to build OpenJDK with GCC 15.0.1 on Fedora 42 x86_64, however I saw > following error. > > > * For target support_native_java.desktop_libsplashscreen_splashscreen_gif.o: > /home/ysuenaga/github-forked/jdk/src/java.desktop/share/native/libsplashscreen/splashscreen_gif.c:51:41: > error: initializer-string for array of ‘char’ truncates NUL terminator but > destination lacks ‘nonstring’ attribute (12 chars into 11 available) > [-Werror=unterminated-string-initialization] > 51 | static const char szNetscape20ext[11] = "NETSCAPE2.0"; > | ^~~~~~~~~~~~~ > cc1: all warnings being treated as errors > > > This constant seems to be used to detect Netscape 2.0 extension in GIF image. > It should be used to compare with extension block without NUL char, but we > should tweak initialization to avoid this error for safety code. Isn't gcc wrong to complain ? I'm looking at what is admittedly an old draft of ANSI C https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf and on p130 it has this where t is the same as the usage in splashscreen. ====== EXAMPLE 8 The declaration char s[] = "abc", t[3] = "abc"; defines ‘‘plain’’ char array objects s and t whose elements are initialized with character string literals. This declaration is identical to char s[] = { 'a', 'b', 'c', '\0' }, t[] = { 'a', 'b', 'c' }; ===== ------------- PR Comment: https://git.openjdk.org/jdk/pull/24770#issuecomment-2822131320