load tend: Avoid "may be used uninitialized" warnings
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 23 Jan 2021 07:47:22 +0000 (08:47 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 6 Feb 2021 15:55:37 +0000 (16:55 +0100)
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>
src/lib/commands/load.c
src/lib/commands/tend.c

index b3e9b60c1e4899945e214a21b44312359cc61eb7..62847837df286386c3176119ab64439681452c84 100644 (file)
@@ -30,7 +30,7 @@
  *     David Sharnoff, 1987
  *     Ken Stevens, 1995 (rewritten)
  *     Steve McClure, 1998-2000
- *     Markus Armbruster, 2004-2018
+ *     Markus Armbruster, 2004-2021
  */
 
 #include <config.h>
@@ -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);
index 5bce717724129dbddd6a99bc12bc5c1f372948f6..3f037714cd5995df0694f981407366b4e44dbb1e 100644 (file)
@@ -30,7 +30,7 @@
  *     Dave Pare, 1986
  *     Thomas Ruschak, 1992
  *     Steve McClure, 2000
- *     Markus Armbruster, 2004-2017
+ *     Markus Armbruster, 2004-2021
  */
 
 #include <config.h>
@@ -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);