From 88be2413ce0f82859eec83e29ceed000756240f2 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Mon, 16 Apr 2018 23:48:19 +0200 Subject: [PATCH] Codechange #6729: mute bogus GCC 7 warning (#6733) We do a memset of (byte - byte), which strictly seen ranges from -254 .. 255, for which GCC warns. But just before this memset is an if() which says the first byte has to be bigger than the second. So this is a bogus warning. --- src/newgrf.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index d06d1c40a5..5b1713709d 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1971,12 +1971,12 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, Byte if (length == 0 || number == 0) break; if (length > statspec->lengths) { + byte diff_length = length - statspec->lengths; statspec->platforms = ReallocT(statspec->platforms, length); - memset(statspec->platforms + statspec->lengths, 0, length - statspec->lengths); + memset(statspec->platforms + statspec->lengths, 0, diff_length); statspec->layouts = ReallocT(statspec->layouts, length); - memset(statspec->layouts + statspec->lengths, 0, - (length - statspec->lengths) * sizeof(*statspec->layouts)); + memset(statspec->layouts + statspec->lengths, 0, diff_length * sizeof(*statspec->layouts)); statspec->lengths = length; }