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)
+ 
+