aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2022-11-17 17:48:00 +0000
committerAndrew Pinski <apinski@marvell.com>2022-11-17 17:56:55 +0000
commitee892832ea19b21a3420ef042e582204fac852a2 (patch)
treebd699483e6d9a0e39e5cff88977bb47c4548fb8b /gcc
parent4e306222f442f8d4c6fc6da997ab756a5e43e36e (diff)
downloadgcc-ee892832ea19b21a3420ef042e582204fac852a2.zip
gcc-ee892832ea19b21a3420ef042e582204fac852a2.tar.gz
gcc-ee892832ea19b21a3420ef042e582204fac852a2.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/match.pd2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/match.pd b/gcc/match.pd
index 5aba165..a4d1386 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++)