Add patch for r11051 which fixes Valgrind bug 227570.
This patch fixes a false warning about uninitialised memory access when
invoking utimes(2).
BUG=none
TEST=remove the suppression, base_unittests should pass clean.
Review URL: http://codereview.chromium.org/652040
git-svn-id: http://src.chromium.org/svn/trunk/deps/third_party/valgrind/scripts@39704 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
diff --git a/build-valgrind-for-chromium.sh b/build-valgrind-for-chromium.sh
index 7bef332..8e88f04 100755
--- a/build-valgrind-for-chromium.sh
+++ b/build-valgrind-for-chromium.sh
@@ -60,6 +60,10 @@
# The corresponding feature request for Valgrind is at
# https://bugs.kde.org/show_bug.cgi?id=219156.
patch -p0 < "${THISDIR}/intercept_tcmalloc.patch"
+
+ # Fix for https://bugs.kde.org/show_bug.cgi?id=227570
+ # which causes false uninitialised memory warnings
+ patch -p0 < "${THISDIR}/vbug227570.patch"
# }}}
# Add ThreadSanitier to the installation.
diff --git a/vbug227570.patch b/vbug227570.patch
new file mode 100644
index 0000000..9186429
--- /dev/null
+++ b/vbug227570.patch
@@ -0,0 +1,44 @@
+# See https://bugs.kde.org/show_bug.cgi?id=227570
+Index: coregrind/m_syswrap/priv_syswrap-generic.h
+===================================================================
+--- coregrind/m_syswrap/priv_syswrap-generic.h (revision 11050)
++++ coregrind/m_syswrap/priv_syswrap-generic.h (revision 11051)
+@@ -252,23 +252,23 @@
+
+ extern SysRes ML_(generic_PRE_sys_mmap) ( TId, UW, UW, UW, UW, UW, Off64T );
+
+-#define PRE_timeval_READ(zzname, zzarg) \
+- do { \
+- struct vki_timeval *zztv = (struct vki_timeval *)zzarg; \
+- PRE_FIELD_READ(zzname, zztv->tv_sec); \
+- PRE_FIELD_READ(zzname, zztv->tv_usec); \
++#define PRE_timeval_READ(zzname, zzarg) \
++ do { \
++ struct vki_timeval *zztv = (struct vki_timeval *)(zzarg); \
++ PRE_FIELD_READ(zzname, zztv->tv_sec); \
++ PRE_FIELD_READ(zzname, zztv->tv_usec); \
+ } while (0)
+-#define PRE_timeval_WRITE(zzname, zzarg) \
+- do { \
+- struct vki_timeval *zztv = (struct vki_timeval *)zzarg; \
+- PRE_FIELD_WRITE(zzname, zztv->tv_sec); \
+- PRE_FIELD_WRITE(zzname, zztv->tv_usec); \
++#define PRE_timeval_WRITE(zzname, zzarg) \
++ do { \
++ struct vki_timeval *zztv = (struct vki_timeval *)(zzarg); \
++ PRE_FIELD_WRITE(zzname, zztv->tv_sec); \
++ PRE_FIELD_WRITE(zzname, zztv->tv_usec); \
+ } while (0)
+-#define POST_timeval_WRITE(zzarg) \
+- do { \
+- struct vki_timeval *zztv = (struct vki_timeval *)zzarg; \
+- POST_FIELD_WRITE(zztv->tv_sec); \
+- POST_FIELD_WRITE(zztv->tv_usec); \
++#define POST_timeval_WRITE(zzarg) \
++ do { \
++ struct vki_timeval *zztv = (struct vki_timeval *)(zzarg); \
++ POST_FIELD_WRITE(zztv->tv_sec); \
++ POST_FIELD_WRITE(zztv->tv_usec); \
+ } while (0)
+
+