From db6075ab3aa44f69c13c4a169806d08596d25003 Mon Sep 17 00:00:00 2001
From: Paul Price <price@astro.princeton.edu>
Date: Sat, 11 Aug 2018 02:41:34 -0400
Subject: [PATCH] closes bpo-34377: Update Valgrind suppressions. (GH-8729)

Valgrind isn't seeing PyObject_Free/PyObject_Realloc, but using _PyObject_Free/_PyObject_Realloc works.
---
 .../2018-08-10-15-05-00.bpo-34377.EJMMY4.rst  |  3 +++
 Misc/valgrind-python.supp                     | 22 +++++++++----------
 2 files changed, 14 insertions(+), 11 deletions(-)
 create mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-08-10-15-05-00.bpo-34377.EJMMY4.rst

diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-08-10-15-05-00.bpo-34377.EJMMY4.rst b/Misc/NEWS.d/next/Core and Builtins/2018-08-10-15-05-00.bpo-34377.EJMMY4.rst
new file mode 100644
index 0000000000..382a799b0b
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2018-08-10-15-05-00.bpo-34377.EJMMY4.rst	
@@ -0,0 +1,3 @@
+Update valgrind suppression list to use
+``_PyObject_Free``/``_PyObject_Realloc``
+instead of ``PyObject_Free``/``PyObject_Realloc``.
diff --git a/Misc/valgrind-python.supp b/Misc/valgrind-python.supp
index 5bc60fc0a7..bc8f77f261 100644
--- a/Misc/valgrind-python.supp
+++ b/Misc/valgrind-python.supp
@@ -11,7 +11,7 @@
 # to use the preferred suppressions with address_in_range.
 #
 # If you do not want to recompile Python, you can uncomment
-# suppressions for PyObject_Free and PyObject_Realloc.
+# suppressions for _PyObject_Free and _PyObject_Realloc.
 #
 # See Misc/README.valgrind for more information.
 
@@ -127,61 +127,61 @@
 ###{
 ###   ADDRESS_IN_RANGE/Invalid read of size 4
 ###   Memcheck:Addr4
-###   fun:PyObject_Free
+###   fun:_PyObject_Free
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Invalid read of size 4
 ###   Memcheck:Value4
-###   fun:PyObject_Free
+###   fun:_PyObject_Free
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Use of uninitialised value of size 8
 ###   Memcheck:Addr8
-###   fun:PyObject_Free
+###   fun:_PyObject_Free
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Use of uninitialised value of size 8
 ###   Memcheck:Value8
-###   fun:PyObject_Free
+###   fun:_PyObject_Free
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
 ###   Memcheck:Cond
-###   fun:PyObject_Free
+###   fun:_PyObject_Free
 ###}
 
 ###{
 ###   ADDRESS_IN_RANGE/Invalid read of size 4
 ###   Memcheck:Addr4
-###   fun:PyObject_Realloc
+###   fun:_PyObject_Realloc
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Invalid read of size 4
 ###   Memcheck:Value4
-###   fun:PyObject_Realloc
+###   fun:_PyObject_Realloc
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Use of uninitialised value of size 8
 ###   Memcheck:Addr8
-###   fun:PyObject_Realloc
+###   fun:_PyObject_Realloc
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Use of uninitialised value of size 8
 ###   Memcheck:Value8
-###   fun:PyObject_Realloc
+###   fun:_PyObject_Realloc
 ###}
 ###
 ###{
 ###   ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
 ###   Memcheck:Cond
-###   fun:PyObject_Realloc
+###   fun:_PyObject_Realloc
 ###}
 
 ###
-- 
2.50.1