On 8/3/21 11:21 AM, Joseph Myers wrote:
On Tue, 3 Aug 2021, Martin Sebor via Gcc wrote:

Yes, we know about that one.  What I'm asking for is the translation
units with the other warnings you showed with the latest GCC (including
the threader patches) on the other targets (including i686 and power).
I don't have an easy way to create them using my setup.

I've attached (all gzipped) hurdselect.i (i686-gnu, -O2 -Wall -Werror
-Wno-parentheses):

Thanks.


hurdselect.c: In function '_hurd_select':
hurdselect.c:555:7: error: 'ss' may be used uninitialized in this function 
[-Werror=maybe-uninitialized]
hurdselect.c:70:25: note: 'ss' was declared here

This is a false positive caused by the overly restrictive analysis
limits hardwired into GCC (like PR 85872).  I have a patch that
relaxes the limits and that avoids the warning in this case but
it's not yet ready.


and t.61.i (powerpc-linux-gnu, -O2 -Wall -Werror):

In file included from t.61.c:437:
In function 'from_t_61_single',
     inlined from 'gconv' at ../iconv/skeleton.c:568:15:
../iconv/loop.c:440:22: error: writing 1 byte into a region of size 0 
[-Werror=stringop-overflow=]
In file included from t.61.c:437:
../iconv/loop.c: In function 'gconv':
../iconv/loop.c:382:17: note: at offset 2 into destination object 'bytebuf' of 
size 2

This is the same warning as Jeff noted on s390-linux-gnu and that
I explained in my reply:
  https://gcc.gnu.org/pipermail/gcc/2021-July/236943.html
There's nothing the warning alone can do to avoid triggering in these
cases (unrolling too many iterations of a loop).  The unroller does
have code to avoid doing this (infer_loop_bounds_from_undefined) but
it's not good enough.  Using -fno-aggressive-loop-optimizations
prevents the warning.

and dl-tls.i (powerpc64-linux-gnu, -O2 -finline-limit=2000 -Wall -Werror;
the -finline-limit=2000 option is necessary for the error and comes from
sysdeps/powerpc/powerpc64/Makefile):

In file included from ../sysdeps/powerpc/dl-tls.c:20:
In function '_dl_allocate_tls_init',
     inlined from '_dl_allocate_tls' at ../elf/dl-tls.c:621:10:
../elf/dl-tls.c:529:10: error: array subscript -1 is outside array bounds of 
'void[9223372036854775807]' [-Werror=array-bounds]
../elf/dl-tls.c:544:40: error: array subscript -1 is outside array bounds of 
'void[9223372036854775807]' [-Werror=array-bounds]


These warnings are reproducible even with a native x86_64 compiler
and the same option.  It's most likely due to the same root cause
as PR 101600 (the one in comment #0, not comment #2).  I don't have
a fix for it yet but it shouldn't be too hard.

Martin

Reply via email to