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;