[Bug c/21548] New: [4.0 regression] Wrong warning about uninitialized variable
schwab at suse dot de
gcc-bugzilla@gcc.gnu.org
Fri May 13 14:46:00 GMT 2005
$ cat uninit.c
static int blocksize = 4096;
int bar (int);
void foo (void)
{
int toread;
int bytes;
static char eof_reached = 0;
toread = blocksize;
while (toread != 0)
{
bytes = bar (toread);
if (bytes <= 0)
{
if (bytes < 0)
continue;
break;
}
toread -= bytes;
}
if (bytes == 0)
eof_reached = 1;
}
$ gcc -O2 -Wall -c uninit.c
uninit.c: In function ‘foo’:
uninit.c:25: warning: ‘bytes’ is used uninitialized in this function
This warning is wrong, since bytes is never used uninitialized as long as
blocksize is non-zero.
--
Summary: [4.0 regression] Wrong warning about uninitialized
variable
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: schwab at suse dot de
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21548
More information about the Gcc-bugs
mailing list