From: Andrew Pinski Date: Thu, 17 Nov 2022 17:48:00 +0000 (+0000) Subject: Fix PR 107734: valgrind errors with sbitmap in match.pd X-Git-Tag: basepoints/gcc-14~3075 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee892832ea19b21a3420ef042e582204fac852a2;p=thirdparty%2Fgcc.git Fix PR 107734: valgrind errors with sbitmap in match.pd sbitmap is a simple bitmap and the memory allocated is not cleared on creation; you have to clear it or set it to all ones before using it. This is unlike bitmap which is a sparse bitmap and the entries are cleared as created. The code added in r13-4044-gdc95e1e9702f2f missed that. This patch fixes that mistake. Committed as obvious after a bootstrap and test on x86_64-linux-gnu. gcc/ChangeLog: PR middle-end/107734 * match.pd (perm + vector op pattern): Clear the sbitmap before use. --- diff --git a/gcc/match.pd b/gcc/match.pd index 5aba1653b80e..a4d1386fd9f6 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -8288,6 +8288,8 @@ and, if (sel.encoding ().encoded_full_vector_p ()) { auto_sbitmap seen (nelts); + bitmap_clear (seen); + unsigned HOST_WIDE_INT count = 0, i; for (i = 0; i < nelts; i++)