From 22ae2e1f702883e6e27d3ad96ee81a6266fbc51c Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Thu, 17 Oct 2024 17:42:40 +0200 Subject: [PATCH] Fix for -Wstringop-overflow false positive the way the overflow check was written wasn't understood by some GCC versions and produced false positives for the memset call being called potentially with object sizes that are larger than half address-space. --- bfd/merge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bfd/merge.c b/bfd/merge.c index c811bc57eae..abb0269227e 100644 --- a/bfd/merge.c +++ b/bfd/merge.c @@ -181,9 +181,9 @@ sec_merge_maybe_resize (struct sec_merge_hash *table, unsigned added) do { - newnb *= 2; - if (!(unsigned int)newnb) + if (newnb >> (8 * sizeof(mapofs_type) - 1)) return false; + newnb *= 2; } while (NEEDS_RESIZE (bfdtab->count + added, newnb)); -- 2.39.5