From e94136bd87b18345e38a5e44445a476de12b4354 Mon Sep 17 00:00:00 2001 From: Paul Burton Date: Tue, 25 Jul 2017 15:07:03 +0100 Subject: [PATCH] mips-relocs: Fix warning from gcc 6.3 It seems that gcc 6.3 at least is smart enough to warn about the _val variable being unassigned in the default case in the set_hdr_field() macro, but not smart enough to figure out that the default case is never taken. This results in warnings such as the following: pfx##hdr32[idx].field = _val; \ ^ ../tools/mips-relocs.c:51:11: note: _val was declared here uint64_t _val; \ ^ ../tools/mips-relocs.c:88:2: note: in expansion of macro set_hdr_field set_hdr_field(p, idx, field, val) ^~~~~~~~~~~~~ ../tools/mips-relocs.c:408:3: note: in expansion of macro set_phdr_field set_phdr_field(i, p_filesz, load_sz); ^~~~~~~~~~~~~~ ../tools/mips-relocs.c: In function main: ../tools/mips-relocs.c:77:25: warning: _val may be used uninitialized in this function [-Wmaybe-uninitialized] Avoid this by assigning _val = 0 in the default case, and asserting that we didn't actually hit it for good measure. For reference gcc 7.1.1 seems to be smart enough to not hit the above warning without this patch. Signed-off-by: Paul Burton Fixes: 011dd93ca97a ("MIPS: Stop building position independent code") Cc: Daniel Schwierzeck Cc: Tom Rini Cc: u-boot@lists.denx.de --- tools/mips-relocs.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/mips-relocs.c b/tools/mips-relocs.c index b690fa53c4..8be69d320f 100644 --- a/tools/mips-relocs.c +++ b/tools/mips-relocs.c @@ -6,6 +6,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include #include #include #include @@ -69,6 +70,11 @@ case 8: \ _val = is_be ? htobe64(val) : htole64(val); \ break; \ + default: \ + /* We should never reach here */ \ + _val = 0; \ + assert(0); \ + break; \ } \ \ if (is_64) \ -- 2.25.1