# Suppress a valgrind message about use of uninitialized memory in memchr().

# Copyright (C) 2009-2022 Free Software Foundation, Inc.
#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

# POSIX states that when the character is found, memchr must not read extra
# bytes in an overestimated length (for example, where memchr is used to
# implement strnlen).  However, we use a safe word read to provide a speedup.
{
    memchr-value4
    Memcheck:Value4
    fun:rpl_memchr
}
{
    memchr-value8
    Memcheck:Value8
    fun:rpl_memchr
}
