[Bug regression/55759] New: bogus warning when building drivers/ata/libata-core.c in v3.7 of the linux kernel
bp at alien8 dot de
gcc-bugzilla@gcc.gnu.org
Thu Dec 20 15:36:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55759
Bug #: 55759
Summary: bogus warning when building drivers/ata/libata-core.c
in v3.7 of the linux kernel
Classification: Unclassified
Product: gcc
Version: 4.7.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: regression
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: bp@alien8.de
Hi,
when building kernel v3.7 with Debian's gcc: (Debian 4.7.2-4) 4.7.2, I
get the following warning:
$ make CC=gcc-4.7 drivers/ata/libata-core.o
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `relocs'.
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CC kernel/bounds.s
GEN include/generated/bounds.h
CC arch/x86/kernel/asm-offsets.s
GEN include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CC scripts/mod/empty.o
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
CC drivers/ata/libata-core.o
drivers/ata/libata-core.c: In function ‘ata_hpa_resize’:
drivers/ata/libata-core.c:1397:3: warning: ‘native_sectors’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
$
it falsely complains that native_sectors might be used unitialized. The
variable's value is assigned-to in an auxiliary function and passed to
it as a pointer.
The auxiliary function returns negative value on error and 0 on success
and its caller uses the native_sectors value returned over the pointer
only in the success case and in that case, native_sectors is always
properly initialized.
Also, gcc-4.6 (gcc-4.6 (Debian 4.6.3-14) 4.6.3) doesn't trigger that
same warning:
$ make CC=gcc-4.6 drivers/ata/libata-core.o
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `relocs'.
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
CC drivers/ata/libata-core.o
$
Thanks.
More information about the Gcc-bugs
mailing list