From 2df82cd4b459fbc32120e0ad1ce19e26349506fe Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Tue, 1 Nov 2022 10:36:59 +0000 Subject: [PATCH] opcodes/arm: silence compiler warning about uninitialized variable use The earlier commit: commit 6576bffe6cbbb53c5756b2fccd2593ba69b74cdf Date: Thu Jul 7 13:43:45 2022 +0100 opcodes/arm: add disassembler styling for arm was causing a compiler warning about a possible uninitialized variable usage within opcodes/arm-dis.c. The problem is in print_mve_unpredictable, and relates to the reason variable, which is set by a switch table. Currently the switch table does cover every valid value, though there is no default case. The variable switched on is passed in as an argument to the print_mve_unpredictable function. Looking at how print_mve_unpredictable is used, there is only one use, the second argument is the one that is used for the switch table, looking at how this argument is set, I don't believe it is possible for this argument to take an invalid value. So, I think the compiler warning is a false positive. As such, my proposed solution is to initialize the reason variable to the string "??", this will silence the warning, and the "??" string should never end up being printed. --- opcodes/arm-dis.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 6d302ec50ba..101b3f84dfe 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -7234,7 +7234,9 @@ print_mve_unpredictable (struct disassemble_info *info, { void *stream = info->stream; fprintf_styled_ftype func = info->fprintf_styled_func; - const char *reason; + /* Initialize REASON to avoid compiler warning about uninitialized + usage, though such usage should be impossible. */ + const char *reason = "??"; switch (unpredict_code) { -- 2.30.2