acpi: Fix warning: 'num_cpus' may be used uninitialized in this function
cover acpi: Fix warning: 'num_cpus' may be used uninitialized in this function
Hi,
Self-explanatory warning message.
Jean Sacren (1):
acpi: Fix warning: 'num_cpus' may be used uninitialized in this
function
drivers/acpi/acpi_pad.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Signature · 2 lines
Jean Sacren Bring LAMP To People
PATCH 1/1 acpi: Fix warning: 'num_cpus' may be used uninitialized in this function
warning: 'num_cpus' may be used uninitialized in this function
Initialize 'num_cpus' variable to zero so that gcc doesn't complain.
--- drivers/acpi/acpi_pad.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/acpi/acpi_pad.c +1 -1
@@ -429,7 +429,7 @@ static void acpi_pad_ost(acpi_handle handle, int stat,static void acpi_pad_handle_notify (acpi_handle handle) { -int num_cpus; +int num_cpus =0 ;uint32_t idle_cpus;mutex_lock (&isolated_cpus_lock);
Signature · 1 line
1.7.1
Quoted 3 lines · Jean Sacren
warning: '
num_cpus' may be used uninitialized in this functionInitialize '
num_cpus' variable to zero so that gcc doesn't complain.
acpi_pad_pur() is referenced only once, so it should end up inlined, at which point gcc really has no excuse to not determine with perfect confidence whether num_cpus is being used unitialized or not.
Looking at the code, it realy does look like a false positive.
Are you using a recent gcc?
Signature · 4 lines
"One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh
Quoted 9 lines · Henrique de Moraes Holschuh
Quoted 3 lines · Jean Sacren
warning: '
num_cpus' may be used uninitialized in this functionInitialize '
num_cpus' variable to zero so that gcc doesn't complain.
acpi_pad_pur()is referenced only once, so it should end up inlined, at which point gcc really has no excuse to not determine with perfect confidence whethernum_cpusis being used unitialized or not.
If acpi_pad_pur() is called and returns with non-zero value, acpi_pad_handle_notify() happily returns, but num_cpus is referenced by address without being initialized, so gcc gives the warning.
Quoted 3 lines
Looking at the code, it realy does look like a false positive.
Unfortunately it is _not_ a false positive. Here gcc does what it's supposed to do. Therefore, the patch is correct.
Signature · 2 lines
Jean Sacren Bring LAMP To People
Quoted 10 lines · Jean Sacren
Quoted 9 lines · Henrique de Moraes Holschuh
Quoted 3 lines · Jean Sacren
warning: '
num_cpus' may be used uninitialized in this functionInitialize '
num_cpus' variable to zero so that gcc doesn't complain.
acpi_pad_pur()is referenced only once, so it should end up inlined, at which point gcc really has no excuse to not determine with perfect confidence whethernum_cpusis being used unitialized or not.
Quoted 8 lines
If
acpi_pad_pur()is called and returns with non-zero value,acpi_pad_handle_notify()happily returns, butnum_cpusis referenced by address without being initialized, so gcc gives the warning.Quoted 3 lines
Looking at the code, it realy does look like a false positive.
Unfortunately it is _not_ a false positive. Here gcc does what it's supposed to do. Therefore, the patch is correct.
It will be a false positive if the variable is NOT used unitialized. Passing a reference does not access the object, and acpi_pad_pur() is not a black box to the optimizer (all static, all in the same file, and it is being inlined even...)
I don't think num_cpus is being used unitialized, so, as far as I can tell, it is a false positive. gcc should not have issued that warning.
I don't object to the patch, btw.
Signature · 4 lines
"One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh