Issue #8847: Merge with 3.2
diff --git a/Lib/test/test_list.py b/Lib/test/test_list.py
index 302c1d8..5df27d3 100644
--- a/Lib/test/test_list.py
+++ b/Lib/test/test_list.py
@@ -98,6 +98,14 @@
         d = pickle.dumps(it)
         self.assertEqual(self.type2test(it), self.type2test(reversed(data))[1:])
 
+    def test_no_comdat_folding(self):
+        # Issue 8847: In the PGO build, the MSVC linker's COMDAT folding
+        # optimization causes failures in code that relies on distinct
+        # function addresses.
+        class L(list): pass
+        with self.assertRaises(TypeError):
+            (3,) + L([1,2])
+
 def test_main(verbose=None):
     support.run_unittest(ListTest)
 
diff --git a/Lib/test/test_tuple.py b/Lib/test/test_tuple.py
index d928db2..e41711c 100644
--- a/Lib/test/test_tuple.py
+++ b/Lib/test/test_tuple.py
@@ -193,6 +193,14 @@
         d = pickle.dumps(it)
         self.assertEqual(self.type2test(it), self.type2test(reversed(data))[1:])
 
+    def test_no_comdat_folding(self):
+        # Issue 8847: In the PGO build, the MSVC linker's COMDAT folding
+        # optimization causes failures in code that relies on distinct
+        # function addresses.
+        class T(tuple): pass
+        with self.assertRaises(TypeError):
+            [3,] + T((1,2))
+
 def test_main():
     support.run_unittest(TupleTest)
 
diff --git a/Misc/NEWS b/Misc/NEWS
index b1df727..f4dae73 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -276,6 +276,8 @@
 Build
 -----
 
+- Issue #8847: Disable COMDAT folding in Windows PGO builds.
+
 - Issue #14018: Fix OS X Tcl/Tk framework checking when using OS X SDKs.
 
 - Issue #15431: Add _freeze_importlib project to regenerate importlib.h
diff --git a/PC/VS9.0/pginstrument.vsprops b/PC/VS9.0/pginstrument.vsprops
index 38c5f18..99c117b 100644
--- a/PC/VS9.0/pginstrument.vsprops
+++ b/PC/VS9.0/pginstrument.vsprops
@@ -22,7 +22,7 @@
 	<Tool

 		Name="VCLinkerTool"

 		OptimizeReferences="2"

-		EnableCOMDATFolding="2"

+		EnableCOMDATFolding="1"

 		LinkTimeCodeGeneration="2"

 		ProfileGuidedDatabase="$(SolutionDir)$(PlatformName)-pgi\$(TargetName).pgd"

 		ImportLibrary="$(OutDirPGI)\$(TargetName).lib"