From 4914daa587a25df9792013a994e5d678173fdf28 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 23 Jan 2021 08:48:56 +0100 Subject: [PATCH] fire launch: Avoid "may be used uninitialized" warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit launch_missile() initializes @n to the target ship number only when the target is a ship. It also uses it only then, to re-get the ship. Clang is cool with this, but GCC gets confused and warns "ā€˜n’ may be used uninitialized". Use target_ship.shp_uid instead of @n to avoid the warning. Similar issue in c_fire(): use vship.shp_uid instead of for @vhsipno. Signed-off-by: Markus Armbruster --- src/lib/commands/laun.c | 3 ++- src/lib/commands/mfir.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/commands/laun.c b/src/lib/commands/laun.c index 9e1466b5..15ba87a2 100644 --- a/src/lib/commands/laun.c +++ b/src/lib/commands/laun.c @@ -263,7 +263,8 @@ launch_missile(struct plnstr *pp) target_ship.shp_x, target_ship.shp_y, target_ship.shp_own, &sublaunch) < 0) return RET_OK; - getship(n, &target_ship); + /* @target_ship may have expended shells defending */ + getship(target_ship.shp_uid, &target_ship); if (!msl_hit(pp, shp_hardtarget(&target_ship), EF_SHIP, N_SHP_MISS, N_SHP_SMISS, sublaunch, target_ship.shp_own)) { diff --git a/src/lib/commands/mfir.c b/src/lib/commands/mfir.c index cb1eb9c5..de2aa0a4 100644 --- a/src/lib/commands/mfir.c +++ b/src/lib/commands/mfir.c @@ -393,7 +393,7 @@ c_fire(void) putsect(&vsect); break; default: - getship(vshipno, &vship); + getship(vship.shp_uid, &vship); shipdamage(&vship, dam); if (vship.shp_effic < SHIP_MINEFF) pr("%s sunk!\n", prsub(&vship));