qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 4/4] target/ppc: fix warning with clang-15


From: Pierrick Bouvier
Subject: [PATCH 4/4] target/ppc: fix warning with clang-15
Date: Mon, 13 Feb 2023 17:13:52 +0100

When compiling for windows-arm64 using clang-15, it reports a sometimes
uninitialized variable. This seems to be a false positive, as a default
case guards switch expressions, preventing to return an uninitialized
value, but clang seems unhappy with assert definition.

Setting the rnd variable to zero does not hurt anyway.

../target/ppc/dfp_helper.c:141:13: error: variable 'rnd' is used uninitialized 
whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]             
                                                                 assert(0); /* 
cannot get here */                                                              
                                                                                
                                      ^~~~~~~~~
../include/qemu/osdep.h:229:20: note: expanded from macro 'assert'              
                                                                                
                                          #define assert(x)  g_assert(x)        
                                                                                
                                                                                
                                 ^~~~~~~~~~~
/clangarm64/bin/../include/glib-2.0/glib/gtestutils.h:235:49: note: expanded 
from macro 'g_assert'                                                           
                                                                    if G_LIKELY 
(expr) ; else \
                                                ^~~~~~~~~~~~~~~
/clangarm64/bin/../include/glib-2.0/glib/gmacros.h:1186:25: note: expanded from 
macro 'G_LIKELY'
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../target/ppc/dfp_helper.c:144:42: note: uninitialized use occurs here
    decContextSetRounding(&dfp->context, rnd);

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
 target/ppc/dfp_helper.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/ppc/dfp_helper.c b/target/ppc/dfp_helper.c
index cc024316d5..0b4b280683 100644
--- a/target/ppc/dfp_helper.c
+++ b/target/ppc/dfp_helper.c
@@ -69,7 +69,7 @@ struct PPC_DFP {
 
 static void dfp_prepare_rounding_mode(decContext *context, uint64_t fpscr)
 {
-    enum rounding rnd;
+    enum rounding rnd = 0;
 
     switch ((fpscr & FP_DRN) >> FPSCR_DRN0) {
     case 0:
@@ -106,7 +106,7 @@ static void dfp_prepare_rounding_mode(decContext *context, 
uint64_t fpscr)
 static void dfp_set_round_mode_from_immediate(uint8_t r, uint8_t rmc,
                                                   struct PPC_DFP *dfp)
 {
-    enum rounding rnd;
+    enum rounding rnd = 0;
     if (r == 0) {
         switch (rmc & 3) {
         case 0:
-- 
2.30.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]