diff -Nrcpad gcc-12-20250514/LAST_UPDATED gcc-12-20250521/LAST_UPDATED
*** gcc-12-20250514/LAST_UPDATED	Wed May 14 22:32:56 2025
--- gcc-12-20250521/LAST_UPDATED	Wed May 21 22:32:26 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-12 revision 97724bfb623a2443e4dad03fa643d0e509d37e6c
--- 1 ----
! Obtained from git: releases/gcc-12 revision 6ea460af8fbd0f6adeff54673688460e81711a57
diff -Nrcpad gcc-12-20250514/MD5SUMS gcc-12-20250521/MD5SUMS
*** gcc-12-20250514/MD5SUMS	Wed May 14 22:33:05 2025
--- gcc-12-20250521/MD5SUMS	Wed May 21 22:32:30 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-12-20250514.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-12-20250521.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 21,27 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 6c9dee476336de669df1d902b406d189  LAST_UPDATED
  e854cb1e639422e089031eba0c689e15  MAINTAINERS
  5b26d0dff99e7a528342ab4d77a284df  Makefile.def
  e2f1751d40a9663c173f048c1179539e  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! b09e0bef4febd31a4c178a72f6a2f424  LAST_UPDATED
  e854cb1e639422e089031eba0c689e15  MAINTAINERS
  5b26d0dff99e7a528342ab4d77a284df  Makefile.def
  e2f1751d40a9663c173f048c1179539e  Makefile.in
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 505,511 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! efdc24cc839747e0b5399cc00dc85284  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 505,511 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! be0a56bc3bdb6d0d6cd1a63608801f65  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** dcdcea9380167bc0fc31fbcc9ae7cd70  libgo/
*** 97459,97472 ****
  1e4c9666f505813e54ed2b3d4056d2f8  libgo/go/crypto/tls/example_test.go
  6c121e7342c13fdc786312f66d8dbb99  libgo/go/crypto/tls/generate_cert.go
  92c22ddf04bfc1134e9ce858e4fe63d1  libgo/go/crypto/tls/handshake_client.go
! b1c3932241580b99b951fae0edb61fd8  libgo/go/crypto/tls/handshake_client_test.go
  0427ef397843c02f3be96cfacd0f14a3  libgo/go/crypto/tls/handshake_client_tls13.go
  46b69f2680156d5e71cb8c6ae2343e94  libgo/go/crypto/tls/handshake_messages.go
  0945ccb0c15b2deb95d8ca2b33b0ea54  libgo/go/crypto/tls/handshake_messages_test.go
  5acf20b462aafc7a101527ee55f5c865  libgo/go/crypto/tls/handshake_server.go
! 2b8b5b21bf0ce23f0cc1267b74babf93  libgo/go/crypto/tls/handshake_server_test.go
  4de3e07cdf2105cfcbfc08e792804987  libgo/go/crypto/tls/handshake_server_tls13.go
! b064ac2d0b92b42852f6ecd68366b46d  libgo/go/crypto/tls/handshake_test.go
  9a32a638fe102dd2d9c10bdc7fea9e5e  libgo/go/crypto/tls/handshake_unix_test.go
  a7f68e8d2ee39cb8a707a0e0eba8ca47  libgo/go/crypto/tls/key_agreement.go
  aa7a95034a03be2806fa57040be5dc21  libgo/go/crypto/tls/key_schedule.go
--- 97459,97472 ----
  1e4c9666f505813e54ed2b3d4056d2f8  libgo/go/crypto/tls/example_test.go
  6c121e7342c13fdc786312f66d8dbb99  libgo/go/crypto/tls/generate_cert.go
  92c22ddf04bfc1134e9ce858e4fe63d1  libgo/go/crypto/tls/handshake_client.go
! f76251738608d414afc6c3f485ba35a8  libgo/go/crypto/tls/handshake_client_test.go
  0427ef397843c02f3be96cfacd0f14a3  libgo/go/crypto/tls/handshake_client_tls13.go
  46b69f2680156d5e71cb8c6ae2343e94  libgo/go/crypto/tls/handshake_messages.go
  0945ccb0c15b2deb95d8ca2b33b0ea54  libgo/go/crypto/tls/handshake_messages_test.go
  5acf20b462aafc7a101527ee55f5c865  libgo/go/crypto/tls/handshake_server.go
! 20c613e2c2699d3c223d49f0ca1b8984  libgo/go/crypto/tls/handshake_server_test.go
  4de3e07cdf2105cfcbfc08e792804987  libgo/go/crypto/tls/handshake_server_tls13.go
! 6a407d52ecada2de1da0168e7271f0c0  libgo/go/crypto/tls/handshake_test.go
  9a32a638fe102dd2d9c10bdc7fea9e5e  libgo/go/crypto/tls/handshake_unix_test.go
  a7f68e8d2ee39cb8a707a0e0eba8ca47  libgo/go/crypto/tls/key_agreement.go
  aa7a95034a03be2806fa57040be5dc21  libgo/go/crypto/tls/key_schedule.go
*************** d6a3256a046d57feca0ff021235c9ede  libgo/
*** 97597,97603 ****
  e2ec9bd8f6f42c104c048bb324bf00d7  libgo/go/crypto/tls/testdata/example-key.pem
  e0281d4b0d8067540dc185550b995938  libgo/go/crypto/tls/ticket.go
  fb39d36797992586f3178188718b0c36  libgo/go/crypto/tls/tls.go
! 7f2c0871f5c00a0aeaa3fad129d50796  libgo/go/crypto/tls/tls_test.go
  fee50745a618969de6971115cea99c5b  libgo/go/crypto/x509/cert_pool.go
  6ba0dbba8fd8e3ffecd7972e85cfdc83  libgo/go/crypto/x509/hybrid_pool_test.go
  7fc12e96e70223731b3f6723c759bcee  libgo/go/crypto/x509/name_constraints_test.go
--- 97597,97603 ----
  e2ec9bd8f6f42c104c048bb324bf00d7  libgo/go/crypto/tls/testdata/example-key.pem
  e0281d4b0d8067540dc185550b995938  libgo/go/crypto/tls/ticket.go
  fb39d36797992586f3178188718b0c36  libgo/go/crypto/tls/tls.go
! bdd3816b98bd07ab38ad8cfdfc5ac82b  libgo/go/crypto/tls/tls_test.go
  fee50745a618969de6971115cea99c5b  libgo/go/crypto/x509/cert_pool.go
  6ba0dbba8fd8e3ffecd7972e85cfdc83  libgo/go/crypto/x509/hybrid_pool_test.go
  7fc12e96e70223731b3f6723c759bcee  libgo/go/crypto/x509/name_constraints_test.go
diff -Nrcpad gcc-12-20250514/gcc/DATESTAMP gcc-12-20250521/gcc/DATESTAMP
*** gcc-12-20250514/gcc/DATESTAMP	Wed May 14 22:32:08 2025
--- gcc-12-20250521/gcc/DATESTAMP	Wed May 21 22:32:11 2025
***************
*** 1 ****
! 20250514
--- 1 ----
! 20250521
diff -Nrcpad gcc-12-20250514/libgo/go/crypto/tls/handshake_client_test.go gcc-12-20250521/libgo/go/crypto/tls/handshake_client_test.go
*** gcc-12-20250514/libgo/go/crypto/tls/handshake_client_test.go	Wed May 14 22:32:38 2025
--- gcc-12-20250521/libgo/go/crypto/tls/handshake_client_test.go	Wed May 21 22:32:21 2025
*************** func testResumption(t *testing.T, versio
*** 881,886 ****
--- 881,887 ----
  		MaxVersion:   version,
  		CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA},
  		Certificates: testConfig.Certificates,
+ 		Time:         testTime,
  	}
  
  	issuer, err := x509.ParseCertificate(testRSACertificateIssuer)
*************** func testResumption(t *testing.T, versio
*** 897,902 ****
--- 898,904 ----
  		ClientSessionCache: NewLRUClientSessionCache(32),
  		RootCAs:            rootCAs,
  		ServerName:         "example.golang",
+ 		Time:               testTime,
  	}
  
  	testResumeState := func(test string, didResume bool) {
*************** func testResumption(t *testing.T, versio
*** 944,963 ****
  	}
  
  	// An old session ticket can resume, but the server will provide a ticket encrypted with a fresh key.
! 	serverConfig.Time = func() time.Time { return time.Now().Add(24*time.Hour + time.Minute) }
  	testResumeState("ResumeWithOldTicket", true)
  	if bytes.Equal(ticket[:ticketKeyNameLen], getTicket()[:ticketKeyNameLen]) {
  		t.Fatal("old first ticket matches the fresh one")
  	}
  
  	// Now the session tickey key is expired, so a full handshake should occur.
! 	serverConfig.Time = func() time.Time { return time.Now().Add(24*8*time.Hour + time.Minute) }
  	testResumeState("ResumeWithExpiredTicket", false)
  	if bytes.Equal(ticket, getTicket()) {
  		t.Fatal("expired first ticket matches the fresh one")
  	}
  
! 	serverConfig.Time = func() time.Time { return time.Now() } // reset the time back
  	key1 := randomKey()
  	serverConfig.SetSessionTicketKeys([][32]byte{key1})
  
--- 946,965 ----
  	}
  
  	// An old session ticket can resume, but the server will provide a ticket encrypted with a fresh key.
! 	serverConfig.Time = func() time.Time { return testTime().Add(24*time.Hour + time.Minute) }
  	testResumeState("ResumeWithOldTicket", true)
  	if bytes.Equal(ticket[:ticketKeyNameLen], getTicket()[:ticketKeyNameLen]) {
  		t.Fatal("old first ticket matches the fresh one")
  	}
  
  	// Now the session tickey key is expired, so a full handshake should occur.
! 	serverConfig.Time = func() time.Time { return testTime().Add(24*8*time.Hour + time.Minute) }
  	testResumeState("ResumeWithExpiredTicket", false)
  	if bytes.Equal(ticket, getTicket()) {
  		t.Fatal("expired first ticket matches the fresh one")
  	}
  
! 	serverConfig.Time = func() time.Time { return testTime() } // reset the time back
  	key1 := randomKey()
  	serverConfig.SetSessionTicketKeys([][32]byte{key1})
  
*************** func testResumption(t *testing.T, versio
*** 974,984 ****
  	testResumeState("KeyChangeFinish", true)
  
  	// Age the session ticket a bit, but not yet expired.
! 	serverConfig.Time = func() time.Time { return time.Now().Add(24*time.Hour + time.Minute) }
  	testResumeState("OldSessionTicket", true)
  	ticket = getTicket()
  	// Expire the session ticket, which would force a full handshake.
! 	serverConfig.Time = func() time.Time { return time.Now().Add(24*8*time.Hour + time.Minute) }
  	testResumeState("ExpiredSessionTicket", false)
  	if bytes.Equal(ticket, getTicket()) {
  		t.Fatal("new ticket wasn't provided after old ticket expired")
--- 976,986 ----
  	testResumeState("KeyChangeFinish", true)
  
  	// Age the session ticket a bit, but not yet expired.
! 	serverConfig.Time = func() time.Time { return testTime().Add(24*time.Hour + time.Minute) }
  	testResumeState("OldSessionTicket", true)
  	ticket = getTicket()
  	// Expire the session ticket, which would force a full handshake.
! 	serverConfig.Time = func() time.Time { return testTime().Add(24*8*time.Hour + 2*time.Minute) }
  	testResumeState("ExpiredSessionTicket", false)
  	if bytes.Equal(ticket, getTicket()) {
  		t.Fatal("new ticket wasn't provided after old ticket expired")
*************** func testResumption(t *testing.T, versio
*** 988,994 ****
  	d := 0 * time.Hour
  	for i := 0; i < 13; i++ {
  		d += 12 * time.Hour
! 		serverConfig.Time = func() time.Time { return time.Now().Add(d) }
  		testResumeState("OldSessionTicket", true)
  	}
  	// Expire it (now a little more than 7 days) and make sure a full
--- 990,996 ----
  	d := 0 * time.Hour
  	for i := 0; i < 13; i++ {
  		d += 12 * time.Hour
! 		serverConfig.Time = func() time.Time { return testTime().Add(d) }
  		testResumeState("OldSessionTicket", true)
  	}
  	// Expire it (now a little more than 7 days) and make sure a full
*************** func testResumption(t *testing.T, versio
*** 996,1002 ****
  	// TLS 1.3 since the client should be using a fresh ticket sent over
  	// by the server.
  	d += 12 * time.Hour
! 	serverConfig.Time = func() time.Time { return time.Now().Add(d) }
  	if version == VersionTLS13 {
  		testResumeState("ExpiredSessionTicket", true)
  	} else {
--- 998,1004 ----
  	// TLS 1.3 since the client should be using a fresh ticket sent over
  	// by the server.
  	d += 12 * time.Hour
! 	serverConfig.Time = func() time.Time { return testTime().Add(d) }
  	if version == VersionTLS13 {
  		testResumeState("ExpiredSessionTicket", true)
  	} else {
*************** func testResumption(t *testing.T, versio
*** 1012,1017 ****
--- 1014,1020 ----
  		MaxVersion:   version,
  		CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA},
  		Certificates: testConfig.Certificates,
+ 		Time:         testTime,
  	}
  	serverConfig.SetSessionTicketKeys([][32]byte{key2})
  
*************** func testVerifyConnection(t *testing.T,
*** 1698,1703 ****
--- 1701,1707 ----
  		serverConfig := &Config{
  			MaxVersion:   version,
  			Certificates: []Certificate{testConfig.Certificates[0]},
+ 			Time:         testTime,
  			ClientCAs:    rootCAs,
  			NextProtos:   []string{"protocol1"},
  		}
*************** func testVerifyConnection(t *testing.T,
*** 1711,1716 ****
--- 1715,1721 ----
  			RootCAs:            rootCAs,
  			ServerName:         "example.golang",
  			Certificates:       []Certificate{testConfig.Certificates[0]},
+ 			Time:               testTime,
  			NextProtos:         []string{"protocol1"},
  		}
  		test.configureClient(clientConfig, &clientCalled)
*************** func testVerifyPeerCertificate(t *testin
*** 1753,1760 ****
  	rootCAs := x509.NewCertPool()
  	rootCAs.AddCert(issuer)
  
- 	now := func() time.Time { return time.Unix(1476984729, 0) }
- 
  	sentinelErr := errors.New("TestVerifyPeerCertificate")
  
  	verifyPeerCertificateCallback := func(called *bool, rawCerts [][]byte, validatedChains [][]*x509.Certificate) error {
--- 1758,1763 ----
*************** func testVerifyPeerCertificate(t *testin
*** 2000,2006 ****
  			config.ServerName = "example.golang"
  			config.ClientAuth = RequireAndVerifyClientCert
  			config.ClientCAs = rootCAs
! 			config.Time = now
  			config.MaxVersion = version
  			config.Certificates = make([]Certificate, 1)
  			config.Certificates[0].Certificate = [][]byte{testRSACertificate}
--- 2003,2009 ----
  			config.ServerName = "example.golang"
  			config.ClientAuth = RequireAndVerifyClientCert
  			config.ClientCAs = rootCAs
! 			config.Time = testTime
  			config.MaxVersion = version
  			config.Certificates = make([]Certificate, 1)
  			config.Certificates[0].Certificate = [][]byte{testRSACertificate}
*************** func testVerifyPeerCertificate(t *testin
*** 2017,2023 ****
  		config := testConfig.Clone()
  		config.ServerName = "example.golang"
  		config.RootCAs = rootCAs
! 		config.Time = now
  		config.MaxVersion = version
  		test.configureClient(config, &clientCalled)
  		clientErr := Client(c, config).Handshake()
--- 2020,2026 ----
  		config := testConfig.Clone()
  		config.ServerName = "example.golang"
  		config.RootCAs = rootCAs
! 		config.Time = testTime
  		config.MaxVersion = version
  		test.configureClient(config, &clientCalled)
  		clientErr := Client(c, config).Handshake()
*************** func testGetClientCertificate(t *testing
*** 2330,2336 ****
  		serverConfig.RootCAs = x509.NewCertPool()
  		serverConfig.RootCAs.AddCert(issuer)
  		serverConfig.ClientCAs = serverConfig.RootCAs
! 		serverConfig.Time = func() time.Time { return time.Unix(1476984729, 0) }
  		serverConfig.MaxVersion = version
  
  		clientConfig := testConfig.Clone()
--- 2333,2339 ----
  		serverConfig.RootCAs = x509.NewCertPool()
  		serverConfig.RootCAs.AddCert(issuer)
  		serverConfig.ClientCAs = serverConfig.RootCAs
! 		serverConfig.Time = testTime
  		serverConfig.MaxVersion = version
  
  		clientConfig := testConfig.Clone()
*************** func testResumptionKeepsOCSPAndSCT(t *te
*** 2501,2506 ****
--- 2504,2510 ----
  		ClientSessionCache: NewLRUClientSessionCache(32),
  		ServerName:         "example.golang",
  		RootCAs:            roots,
+ 		Time:               testTime,
  	}
  	serverConfig := testConfig.Clone()
  	serverConfig.MaxVersion = ver
diff -Nrcpad gcc-12-20250514/libgo/go/crypto/tls/handshake_server_test.go gcc-12-20250521/libgo/go/crypto/tls/handshake_server_test.go
*** gcc-12-20250514/libgo/go/crypto/tls/handshake_server_test.go	Wed May 14 22:32:38 2025
--- gcc-12-20250521/libgo/go/crypto/tls/handshake_server_test.go	Wed May 21 22:32:21 2025
*************** func testCrossVersionResume(t *testing.T
*** 483,488 ****
--- 483,489 ----
  	serverConfig := &Config{
  		CipherSuites: []uint16{TLS_RSA_WITH_AES_128_CBC_SHA},
  		Certificates: testConfig.Certificates,
+ 		Time:         testTime,
  	}
  	clientConfig := &Config{
  		CipherSuites:       []uint16{TLS_RSA_WITH_AES_128_CBC_SHA},
*************** func testCrossVersionResume(t *testing.T
*** 490,495 ****
--- 491,497 ----
  		ClientSessionCache: NewLRUClientSessionCache(1),
  		ServerName:         "servername",
  		MinVersion:         VersionTLS10,
+ 		Time:               testTime,
  	}
  
  	// Establish a session at TLS 1.1.
diff -Nrcpad gcc-12-20250514/libgo/go/crypto/tls/handshake_test.go gcc-12-20250521/libgo/go/crypto/tls/handshake_test.go
*** gcc-12-20250514/libgo/go/crypto/tls/handshake_test.go	Wed May 14 22:32:38 2025
--- gcc-12-20250521/libgo/go/crypto/tls/handshake_test.go	Wed May 21 22:32:21 2025
*************** func fromHex(s string) []byte {
*** 429,434 ****
--- 429,439 ----
  	return b
  }
  
+ // testTime is 2016-10-20T17:32:09.000Z, which is within the validity period of
+ // [testRSACertificate], [testRSACertificateIssuer], [testRSA2048Certificate],
+ // [testRSA2048CertificateIssuer], and [testECDSACertificate].
+ var testTime = func() time.Time { return time.Unix(1476984729, 0) }
+ 
  var testRSACertificate = fromHex(" ")
  
  var testRSACertificateIssuer = fromHex(" ")
diff -Nrcpad gcc-12-20250514/libgo/go/crypto/tls/tls_test.go gcc-12-20250521/libgo/go/crypto/tls/tls_test.go
*** gcc-12-20250514/libgo/go/crypto/tls/tls_test.go	Wed May 14 22:32:39 2025
--- gcc-12-20250521/libgo/go/crypto/tls/tls_test.go	Wed May 21 22:32:21 2025
*************** func TestConnectionState(t *testing.T) {
*** 1058,1065 ****
  	rootCAs := x509.NewCertPool()
  	rootCAs.AddCert(issuer)
  
- 	now := func() time.Time { return time.Unix(1476984729, 0) }
- 
  	const alpnProtocol = "golang"
  	const serverName = "example.golang"
  	var scts = [][]byte{[]byte("dummy sct 1"), []byte("dummy sct 2")}
--- 1058,1063 ----
*************** func TestConnectionState(t *testing.T) {
*** 1075,1081 ****
  		}
  		t.Run(name, func(t *testing.T) {
  			config := &Config{
! 				Time:         now,
  				Rand:         zeroSource{},
  				Certificates: make([]Certificate, 1),
  				MaxVersion:   v,
--- 1073,1079 ----
  		}
  		t.Run(name, func(t *testing.T) {
  			config := &Config{
! 				Time:         testTime,
  				Rand:         zeroSource{},
  				Certificates: make([]Certificate, 1),
  				MaxVersion:   v,
