[PATCH] target/arm/m_helper: Silence GCC 10 maybe-uninitialized error

Philippe Mathieu-Daudé posted 1 patch 3 years, 3 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210119062739.589049-1-f4bug@amsat.org
target/arm/m_helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] target/arm/m_helper: Silence GCC 10 maybe-uninitialized error
Posted by Philippe Mathieu-Daudé 3 years, 3 months ago
When building with GCC 10.2 configured with --extra-cflags=-Os, we get:

  target/arm/m_helper.c: In function ‘arm_v7m_cpu_do_interrupt’:
  target/arm/m_helper.c:1811:16: error: ‘restore_s16_s31’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   1811 |             if (restore_s16_s31) {
        |                ^
  target/arm/m_helper.c:1350:10: note: ‘restore_s16_s31’ was declared here
   1350 |     bool restore_s16_s31;
        |          ^~~~~~~~~~~~~~~
  cc1: all warnings being treated as errors

Initialize the 'restore_s16_s31' variable to silence the warning.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 target/arm/m_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/arm/m_helper.c b/target/arm/m_helper.c
index 61760030292..731c435c00b 100644
--- a/target/arm/m_helper.c
+++ b/target/arm/m_helper.c
@@ -1347,7 +1347,7 @@ static void do_v7m_exception_exit(ARMCPU *cpu)
     bool exc_secure = false;
     bool return_to_secure;
     bool ftype;
-    bool restore_s16_s31;
+    bool restore_s16_s31 = false;
 
     /*
      * If we're not in Handler mode then jumps to magic exception-exit
-- 
2.26.2

Re: [PATCH] target/arm/m_helper: Silence GCC 10 maybe-uninitialized error
Posted by Peter Maydell 3 years, 3 months ago
On Tue, 19 Jan 2021 at 06:27, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> When building with GCC 10.2 configured with --extra-cflags=-Os, we get:
>
>   target/arm/m_helper.c: In function ‘arm_v7m_cpu_do_interrupt’:
>   target/arm/m_helper.c:1811:16: error: ‘restore_s16_s31’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>    1811 |             if (restore_s16_s31) {
>         |                ^
>   target/arm/m_helper.c:1350:10: note: ‘restore_s16_s31’ was declared here
>    1350 |     bool restore_s16_s31;
>         |          ^~~~~~~~~~~~~~~
>   cc1: all warnings being treated as errors
>
> Initialize the 'restore_s16_s31' variable to silence the warning.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  target/arm/m_helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)



Applied to target-arm.next, thanks.

-- PMM