When building with GCC 10.2 configured with --extra-cflags=-Os, we get:
softmmu/physmem.c: In function ‘address_space_translate_for_iotlb’:
softmmu/physmem.c:643:26: error: ‘notifier’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
643 | notifier->active = true;
| ^
softmmu/physmem.c:608:23: note: ‘notifier’ was declared here
608 | TCGIOMMUNotifier *notifier;
| ^~~~~~~~
Initialize 'notifier' to silence the warning.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
v2: Remove pointless assert (Peter Maydell)
Yet another hole in our CI.
Supersedes: <20210117160754.4086411-1-f4bug@amsat.org>
---
softmmu/physmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/softmmu/physmem.c b/softmmu/physmem.c
index 6301f4f0a5c..cdcd197656f 100644
--- a/softmmu/physmem.c
+++ b/softmmu/physmem.c
@@ -605,7 +605,7 @@ static void tcg_register_iommu_notifier(CPUState *cpu,
* when the IOMMU tells us the mappings we've cached have changed.
*/
MemoryRegion *mr = MEMORY_REGION(iommu_mr);
- TCGIOMMUNotifier *notifier;
+ TCGIOMMUNotifier *notifier = NULL;
int i;
for (i = 0; i < cpu->iommu_notifiers->len; i++) {
--
2.26.2
On 17/01/21 18:04, Philippe Mathieu-Daudé wrote: > When building with GCC 10.2 configured with --extra-cflags=-Os, we get: > > softmmu/physmem.c: In function ‘address_space_translate_for_iotlb’: > softmmu/physmem.c:643:26: error: ‘notifier’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > 643 | notifier->active = true; > | ^ > softmmu/physmem.c:608:23: note: ‘notifier’ was declared here > 608 | TCGIOMMUNotifier *notifier; > | ^~~~~~~~ > > Initialize 'notifier' to silence the warning. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > v2: Remove pointless assert (Peter Maydell) > > Yet another hole in our CI. > > Supersedes: <20210117160754.4086411-1-f4bug@amsat.org> > --- > softmmu/physmem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/softmmu/physmem.c b/softmmu/physmem.c > index 6301f4f0a5c..cdcd197656f 100644 > --- a/softmmu/physmem.c > +++ b/softmmu/physmem.c > @@ -605,7 +605,7 @@ static void tcg_register_iommu_notifier(CPUState *cpu, > * when the IOMMU tells us the mappings we've cached have changed. > */ > MemoryRegion *mr = MEMORY_REGION(iommu_mr); > - TCGIOMMUNotifier *notifier; > + TCGIOMMUNotifier *notifier = NULL; > int i; > > for (i = 0; i < cpu->iommu_notifiers->len; i++) { > Queued, thanks. Paolo
On 17/01/2021 18.04, Philippe Mathieu-Daudé wrote: > When building with GCC 10.2 configured with --extra-cflags=-Os, we get: > > softmmu/physmem.c: In function ‘address_space_translate_for_iotlb’: > softmmu/physmem.c:643:26: error: ‘notifier’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > 643 | notifier->active = true; > | ^ > softmmu/physmem.c:608:23: note: ‘notifier’ was declared here > 608 | TCGIOMMUNotifier *notifier; > | ^~~~~~~~ > > Initialize 'notifier' to silence the warning. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > v2: Remove pointless assert (Peter Maydell) > > Yet another hole in our CI. I wouldn't call this a hole in the CI. AFAIU we don't support compiling with anything else than the default -O2 (and maybe -O0 for debugging?). -O3 is known to produce a lot of compiler warnings, and apparently -Os has such "problems", too. As far as I can see, it's a false positive warning here, "notifier" should always get initialized, the compiler just fails to see it correctly. Anyway, initializing the variable also can not hurt, so: Reviewed-by: Thomas Huth <thuth@redhat.com>
© 2016 - 2024 Red Hat, Inc.