load tend: Avoid "may be used uninitialized" warnings

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 <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2021-01-23 08:47:22 +01:00
parent b770ac4ba8
commit 1f6b79dd10
2 changed files with 8 additions and 7 deletions

View file

@ -30,7 +30,7 @@
* David Sharnoff, 1987 * David Sharnoff, 1987
* Ken Stevens, 1995 (rewritten) * Ken Stevens, 1995 (rewritten)
* Steve McClure, 1998-2000 * Steve McClure, 1998-2000
* Markus Armbruster, 2004-2018 * Markus Armbruster, 2004-2021
*/ */
#include <config.h> #include <config.h>
@ -79,12 +79,12 @@ c_load(void)
"What commodity (or 'plane' or 'land')? ", buf); "What commodity (or 'plane' or 'land')? ", buf);
if (!p || !*p) if (!p || !*p)
return RET_SYN; return RET_SYN;
ich = item_by_name(p);
if (!strncmp(p, "plane", 5)) if (!strncmp(p, "plane", 5))
type = EF_PLANE; type = EF_PLANE;
else if (!strncmp(p, "land", 4)) else if (!strncmp(p, "land", 4))
type = EF_LAND; type = EF_LAND;
else if (NULL != (ich = item_by_name(p))) else if (ich)
type = EF_SECTOR; type = EF_SECTOR;
else { else {
pr("Can't %sload '%s'\n", loading ? "" : "un", p); pr("Can't %sload '%s'\n", loading ? "" : "un", p);
@ -208,11 +208,12 @@ c_lload(void)
"What commodity (or 'plane' or 'land')? ", buf); "What commodity (or 'plane' or 'land')? ", buf);
if (!p || !*p) if (!p || !*p)
return RET_SYN; return RET_SYN;
ich = item_by_name(p);
if (!strncmp(p, "plane", 5)) if (!strncmp(p, "plane", 5))
type = EF_PLANE; type = EF_PLANE;
else if (!strncmp(p, "land", 4)) else if (!strncmp(p, "land", 4))
type = EF_LAND; type = EF_LAND;
else if (NULL != (ich = item_by_name(p))) else if (ich)
type = EF_SECTOR; type = EF_SECTOR;
else { else {
pr("Can't %sload '%s'\n", loading ? "" : "un", p); pr("Can't %sload '%s'\n", loading ? "" : "un", p);

View file

@ -30,7 +30,7 @@
* Dave Pare, 1986 * Dave Pare, 1986
* Thomas Ruschak, 1992 * Thomas Ruschak, 1992
* Steve McClure, 2000 * Steve McClure, 2000
* Markus Armbruster, 2004-2017 * Markus Armbruster, 2004-2021
*/ */
#include <config.h> #include <config.h>
@ -70,10 +70,10 @@ c_tend(void)
buf); buf);
if (!p || !*p) if (!p || !*p)
return RET_SYN; return RET_SYN;
ip = item_by_name(p);
if (!strncmp(p, "land", 4)) if (!strncmp(p, "land", 4))
type = EF_LAND; type = EF_LAND;
else if (NULL != (ip = item_by_name(p))) else if (ip)
type = EF_SECTOR; type = EF_SECTOR;
else { else {
pr("Can't tend '%s'\n", p); pr("Can't tend '%s'\n", p);