[Bug middle-end/44133] New: [4.5/4.6 Regression] Uninit warning regression with new SRA
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri May 14 09:02:00 GMT 2010
struct S { int i, j; };
int foo (int l)
{
struct S s;
s.j = l - 22;
return s.i + s.j;
}
with -O2 -W -Wall in 4.4 this used to warn:
v.c: In function 'foo':
v.c:6: warning: 's.i' is used uninitialized in this function
but with 4.5+ it warns:
v.c: In function 'foo':
v.c:6:11: warning: '({anonymous})' is used uninitialized in this function
[-Wuninitialized]
For:
struct S { int i, j; };
int foo (int l)
{
struct S s;
if (l > 126)
{
s.j = l - 22;
return s.i + s.j;
}
s.i = 12;
s.j = l + 40;
return s.i + s.j;
}
the warning is ok in both 4.4 and 4.5+.
I'd say that SRA should add the D.XXXX = s$i; stmts, perhaps right before
D.XXXX uses.
--
Summary: [4.5/4.6 Regression] Uninit warning regression with new
SRA
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44133
More information about the Gcc-bugs
mailing list