changeset 11625:dfac57b1ec9f

memchr, memchr2: add valgrind exception * lib/memchr.valgrind: New file. * lib/memchr2.valgrind: New file. * modules/memchr (Files): Distribute valgrind file. * modules/memchr2 (Files): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Mon, 15 Jun 2009 11:04:21 -0600
parents 82b5a4d577af
children e54d8a239545
files ChangeLog lib/memchr.valgrind lib/memchr2.valgrind modules/memchr modules/memchr2
diffstat 5 files changed, 36 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2009-06-15  Eric Blake  <ebb9@byu.net>
 
+	memchr, memchr2: add valgrind exception
+	* lib/memchr.valgrind: New file.
+	* lib/memchr2.valgrind: New file.
+	* modules/memchr (Files): Distribute valgrind file.
+	* modules/memchr2 (Files): Likewise.
+
 	docs: memchr is no longer obsolete
 	* MODULES.html.sh: Move memchr from obsolete to string.h section.
 	* lib/string.in.h (memchr): Simplify logic.
new file mode 100644
--- /dev/null
+++ b/lib/memchr.valgrind
@@ -0,0 +1,14 @@
+# Suppress a valgrind message about use of uninitialized memory in memchr().
+# 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
+}
new file mode 100644
--- /dev/null
+++ b/lib/memchr2.valgrind
@@ -0,0 +1,14 @@
+# Suppress a valgrind message about use of uninitialized memory in memchr2().
+# Like memchr, it is safe to overestimate the length when the terminator
+# is guaranteed to be found.  In this case, we may end up reading a word
+# that is partially uninitialized, but this use is OK for a speedup.
+{
+    memchr2-value4
+    Memcheck:Value4
+    fun:memchr2
+}
+{
+    memchr2-value8
+    Memcheck:Value8
+    fun:memchr2
+}
--- a/modules/memchr
+++ b/modules/memchr
@@ -3,6 +3,7 @@
 
 Files:
 lib/memchr.c
+lib/memchr.valgrind
 m4/memchr.m4
 m4/mmap-anon.m4
 
--- a/modules/memchr2
+++ b/modules/memchr2
@@ -4,6 +4,7 @@
 Files:
 lib/memchr2.h
 lib/memchr2.c
+lib/memchr2.valgrind
 
 Depends-on:
 stdint