Paul Eggert wrote: > > @@ -270,7 +270,7 @@ > > buf[n] = '\0'; > > > > char *extra_buf = extra_buffer.data; > > - idx_t end_idx; > > + idx_t end_idx = 0; > > if (end_in_extra_buffer) > > end_idx = end - extra_buf; > > idx_t len = strlen (end); > > This change isn't needed, since end_idx is used only when > end_in_extra_buffer is true. > > Was the latter change put in only to pacify older GCC versions?
Yes. > (I don't get a warning with GCC 10.2.) Indeed, I don't see warnings in canonicalize-lgpl.c. But there are warnings in gnulib's canonicalize.c: gcc 9.3.0: $ gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -c ./canonicalize.c ./canonicalize.c: In function 'canonicalize_filename_mode_stk': ./canonicalize.c:337:16: warning: unused variable 'discard' [-Wunused-variable] 337 | char discard; | ^~~~~~~ ./canonicalize.c: In function 'canonicalize_filename_mode': ./canonicalize.c:400:33: warning: 'end_idx' may be used uninitialized in this function [-Wmaybe-uninitialized] 400 | end = extra_buf + end_idx; | ~~~~~~~~~~^~~~~~~~~ ./canonicalize.c:389:21: note: 'end_idx' was declared here 389 | idx_t end_idx; | ^~~~~~~ gcc 10.2.0: $ gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -c ./canonicalize.c ./canonicalize.c: In function 'canonicalize_filename_mode_stk': ./canonicalize.c:337:16: warning: unused variable 'discard' [-Wunused-variable] 337 | char discard; | ^~~~~~~ ... ./canonicalize.c:400:33: warning: 'end_idx' may be used uninitialized in this function [-Wmaybe-uninitialized] 400 | end = extra_buf + end_idx; | ~~~~~~~~~~^~~~~~~~~ ./canonicalize.c:389:21: note: 'end_idx' was declared here 389 | idx_t end_idx; | ^~~~~~~ Bruno