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

Reply via email to