diff mbox series

tests/unit/test-block-iothread: fix maybe-uninitialized error on GCC 11

Message ID 20210319112218.49609-1-eesposit@redhat.com
State New
Headers show
Series tests/unit/test-block-iothread: fix maybe-uninitialized error on GCC 11 | expand

Commit Message

Emanuele Giuseppe Esposito March 19, 2021, 11:22 a.m. UTC
When building qemu with GCC 11, test-block-iothread produces the following
warning:

../tests/unit/test-block-iothread.c:148:11: error: ‘buf’ may be used
uninitialized [-Werror=maybe-uninitialized]

This is caused by buf[512] left uninitialized and passed to
bdrv_save_vmstate() that expects a const uint8_t *, so the compiler
assumes it will be read and expects the parameter to be initialized.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
---
 tests/unit/test-block-iothread.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Paolo Bonzini March 19, 2021, 11:28 a.m. UTC | #1
On 19/03/21 12:22, Emanuele Giuseppe Esposito wrote:
> When building qemu with GCC 11, test-block-iothread produces the following
> warning:
> 
> ../tests/unit/test-block-iothread.c:148:11: error: ‘buf’ may be used
> uninitialized [-Werror=maybe-uninitialized]
> 
> This is caused by buf[512] left uninitialized and passed to
> bdrv_save_vmstate() that expects a const uint8_t *, so the compiler
> assumes it will be read and expects the parameter to be initialized.
> 
> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
> ---
>   tests/unit/test-block-iothread.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothread.c
> index 3f866a35c6..8cf172cb7a 100644
> --- a/tests/unit/test-block-iothread.c
> +++ b/tests/unit/test-block-iothread.c
> @@ -89,7 +89,7 @@ static void test_sync_op_pread(BdrvChild *c)
>   
>   static void test_sync_op_pwrite(BdrvChild *c)
>   {
> -    uint8_t buf[512];
> +    uint8_t buf[512] = { 0 };
>       int ret;
>   
>       /* Success */
> @@ -117,7 +117,7 @@ static void test_sync_op_blk_pread(BlockBackend *blk)
>   
>   static void test_sync_op_blk_pwrite(BlockBackend *blk)
>   {
> -    uint8_t buf[512];
> +    uint8_t buf[512] = { 0 };
>       int ret;
>   
>       /* Success */
> @@ -141,7 +141,7 @@ static void test_sync_op_load_vmstate(BdrvChild *c)
>   
>   static void test_sync_op_save_vmstate(BdrvChild *c)
>   {
> -    uint8_t buf[512];
> +    uint8_t buf[512] = { 0 };
>       int ret;
>   
>       /* Error: Driver does not support snapshots */
> 

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Alberto Garcia March 21, 2021, 12:53 p.m. UTC | #2
On Fri 19 Mar 2021 12:22:18 PM CET, Emanuele Giuseppe Esposito <eesposit@redhat.com> wrote:
> When building qemu with GCC 11, test-block-iothread produces the following
> warning:
>
> ../tests/unit/test-block-iothread.c:148:11: error: ‘buf’ may be used
> uninitialized [-Werror=maybe-uninitialized]
>
> This is caused by buf[512] left uninitialized and passed to
> bdrv_save_vmstate() that expects a const uint8_t *, so the compiler
> assumes it will be read and expects the parameter to be initialized.
>
> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>

Reviewed-by: Alberto Garcia <berto@igalia.com>

Berto
diff mbox series

Patch

diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothread.c
index 3f866a35c6..8cf172cb7a 100644
--- a/tests/unit/test-block-iothread.c
+++ b/tests/unit/test-block-iothread.c
@@ -89,7 +89,7 @@  static void test_sync_op_pread(BdrvChild *c)
 
 static void test_sync_op_pwrite(BdrvChild *c)
 {
-    uint8_t buf[512];
+    uint8_t buf[512] = { 0 };
     int ret;
 
     /* Success */
@@ -117,7 +117,7 @@  static void test_sync_op_blk_pread(BlockBackend *blk)
 
 static void test_sync_op_blk_pwrite(BlockBackend *blk)
 {
-    uint8_t buf[512];
+    uint8_t buf[512] = { 0 };
     int ret;
 
     /* Success */
@@ -141,7 +141,7 @@  static void test_sync_op_load_vmstate(BdrvChild *c)
 
 static void test_sync_op_save_vmstate(BdrvChild *c)
 {
-    uint8_t buf[512];
+    uint8_t buf[512] = { 0 };
     int ret;
 
     /* Error: Driver does not support snapshots */