From 1f6b79dd10c841d99d8cf5e94528edb45af19592 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 23 Jan 2021 08:47:22 +0100 Subject: [PATCH] load tend: Avoid "may be used uninitialized" warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit c_load() initializes @ich only when @type is EF_SECTOR. It also uses it only then. Clang is cool with this, but GCC gets confused and warns "‘ich’ may be used uninitialized". Ron Koenderink reports Visual Studio 2019 even flags it as an error. Same for c_lload() and c_tend(). Time to clean this up. Rearrange the code to avoid the warning and also improve readability a bit. Signed-off-by: Markus Armbruster --- src/lib/commands/load.c | 9 +++++---- src/lib/commands/tend.c | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib/commands/load.c b/src/lib/commands/load.c index b3e9b60c..62847837 100644 --- a/src/lib/commands/load.c +++ b/src/lib/commands/load.c @@ -30,7 +30,7 @@ * David Sharnoff, 1987 * Ken Stevens, 1995 (rewritten) * Steve McClure, 1998-2000 - * Markus Armbruster, 2004-2018 + * Markus Armbruster, 2004-2021 */ #include @@ -79,12 +79,12 @@ c_load(void) "What commodity (or 'plane' or 'land')? ", buf); if (!p || !*p) return RET_SYN; - + ich = item_by_name(p); if (!strncmp(p, "plane", 5)) type = EF_PLANE; else if (!strncmp(p, "land", 4)) type = EF_LAND; - else if (NULL != (ich = item_by_name(p))) + else if (ich) type = EF_SECTOR; else { pr("Can't %sload '%s'\n", loading ? "" : "un", p); @@ -208,11 +208,12 @@ c_lload(void) "What commodity (or 'plane' or 'land')? ", buf); if (!p || !*p) return RET_SYN; + ich = item_by_name(p); if (!strncmp(p, "plane", 5)) type = EF_PLANE; else if (!strncmp(p, "land", 4)) type = EF_LAND; - else if (NULL != (ich = item_by_name(p))) + else if (ich) type = EF_SECTOR; else { pr("Can't %sload '%s'\n", loading ? "" : "un", p); diff --git a/src/lib/commands/tend.c b/src/lib/commands/tend.c index 5bce7177..3f037714 100644 --- a/src/lib/commands/tend.c +++ b/src/lib/commands/tend.c @@ -30,7 +30,7 @@ * Dave Pare, 1986 * Thomas Ruschak, 1992 * Steve McClure, 2000 - * Markus Armbruster, 2004-2017 + * Markus Armbruster, 2004-2021 */ #include @@ -70,10 +70,10 @@ c_tend(void) buf); if (!p || !*p) return RET_SYN; - + ip = item_by_name(p); if (!strncmp(p, "land", 4)) type = EF_LAND; - else if (NULL != (ip = item_by_name(p))) + else if (ip) type = EF_SECTOR; else { pr("Can't tend '%s'\n", p);