[Bug bootstrap/56198] New: [4.8 Regression] Go profiledbootstrap error
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 4 07:42:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56198
Bug #: 56198
Summary: [4.8 Regression] Go profiledbootstrap error
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: bootstrap
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: jakub@gcc.gnu.org
CC: ian@gcc.gnu.org
My --enable-checking=release profiledbootstrap failed on an maybe uninitialized
warning turned into -Werror in go/gofrontend/import-archive.cc.
Archive_file::read_header has:
off_t local_nested_off;
if (!this->interpret_header(&hdr, off, pname, size, &local_nested_off))
return false;
if (nested_off != NULL)
*nested_off = local_nested_off;
and the warning was complaining that local_nested_off might be uninitialized.
If Archive_file::interpret_header is what is called here, then *nested_off
might be indeed uninitialized even when the function returns true, in
particular for:
else if (hdr->ar_name[1] == ' ')
{
// This is the symbol table.
pname->clear();
}
else if (hdr->ar_name[1] == '/')
{
// This is the extended name table.
pname->assign(1, '/');
}
BTW, there seems to be also an inconsistency in that method, the first write
to
*nested_off in that method is not guarded by nested_off != NULL:
*nested_off = 0;
while the second one is:
if (nested_off != NULL)
*nested_off = y;
More information about the Gcc-bugs
mailing list