From: Davi Arnaut Date: July 15 2010 7:29pm Subject: bzr commit into mysql-trunk-merge branch (davi:3124) Bug#42733 List-Archive: http://lists.mysql.com/commits/113705 X-Bug: 42733 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6310618404008910557==" --===============6310618404008910557== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline # At a local mysql-trunk-merge repository of davi 3124 Davi Arnaut 2010-07-15 Bug#42733: Type-punning warnings when compiling MySQL -- strict aliasing violations. Silence bogus aliasing warning through a pointer indirection. Also, no need to check the return of a placement new. modified: sql/rpl_handler.cc === modified file 'sql/rpl_handler.cc' --- a/sql/rpl_handler.cc 2010-07-15 13:47:50 +0000 +++ b/sql/rpl_handler.cc 2010-07-15 19:29:25 +0000 @@ -99,21 +99,33 @@ int delegates_init() MY_ALIGNOF(long)> relay_io_mem; #endif - if (!(transaction_delegate= new (trans_mem.data) Trans_delegate) - || (!transaction_delegate->is_inited()) - || !(binlog_storage_delegate= - new (storage_mem.data) Binlog_storage_delegate) - || (!binlog_storage_delegate->is_inited()) + void *place_trans_mem= trans_mem.data; + void *place_storage_mem= storage_mem.data; + + transaction_delegate= new (place_trans_mem) Trans_delegate; + + if (!transaction_delegate->is_inited()) + return 1; + + binlog_storage_delegate= new (place_storage_mem) Binlog_storage_delegate; + + if (!binlog_storage_delegate->is_inited()) + return 1; + #ifdef HAVE_REPLICATION - || !(binlog_transmit_delegate= - new (transmit_mem.data) Binlog_transmit_delegate) - || (!binlog_transmit_delegate->is_inited()) - || !(binlog_relay_io_delegate= - new (relay_io_mem.data) Binlog_relay_IO_delegate) - || (!binlog_relay_io_delegate->is_inited()) -#endif /* HAVE_REPLICATION */ - ) + void *place_transmit_mem= transmit_mem.data; + void *place_relay_io_mem= relay_io_mem.data; + + binlog_transmit_delegate= new (place_transmit_mem) Binlog_transmit_delegate; + + if (!binlog_transmit_delegate->is_inited()) + return 1; + + binlog_relay_io_delegate= new (place_relay_io_mem) Binlog_relay_IO_delegate; + + if (!binlog_relay_io_delegate->is_inited()) return 1; +#endif if (pthread_key_create(&RPL_TRANS_BINLOG_INFO, NULL)) return 1; --===============6310618404008910557== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/davi.arnaut@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: davi.arnaut@stripped # target_branch: file:///home/davi/bzr/stage/mysql-trunk-merge/ # testament_sha1: 4230faf6e39d419f738d3052351508ece7305fd0 # timestamp: 2010-07-15 16:29:31 -0300 # source_branch: file:///home/davi/bzr/mysql-trunk-bugfixing/ # base_revision_id: davi.arnaut@stripped\ # 1zzch26i9owcq1ss # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWSCGTHoAAdlfgEAQeHf//34m rAC////wUAS+k5dWrp7e9enps3buwlETFJvShsp4ppiGQ00AeoYj1Gn6iASkIaDTTIk8iMjTRiAA aA0NAJJMiJ5EyJkynqDTJ5Q0AeoAAASKhD0U80p6aCNGIMmQANAAAJJJoTEzQE0ZNUyemUbSDJ6g 0DQNHBtQa4Zyd7vrf3l+NgagKCQaczjzkERSujMnxbN1AI0AwBDcHCGiy2lVVLtRzydfUoVXDwzV PY+GKFial6adcJWJ782Bl364MO3De7wjfc64dFozuYT0xdOrXAxVzDPlpjunzoTmRP16weDIyDTy CoHhtudTyUCUR+DyrMQyz26P2aXzUiynkihEwjROEQDjbFbDDOaTVlIRyN0pCGbiS0iOrs4x1zPI STph5ca2IYOEylZiJ1bvbzPdmWoRO57621wa+ZHJfmt62CI2qut0r9dK3sKydyGrCGJUFeH7WKjY Fh2lw+8rWBnSt2gsJRIrCqrJltyPhOKcT3y1ZVo3cIt9guQ1FtxnTG+5y0NNVaqLTwzIlHhY4gzx 9BiYG6wlE2tqUCUXMEMApdfSTRvKqYVOG5WE8BK5Sh7EmslrKrAWzQPiI0Mcn6VahWszdtxM4y0Y reZvYrlfEobuJEiNySm9wWjGvWQsrtFECMIiSFIltlNLjGwkfhn31lhjSRjDVZF9WppkNcyabQXh S5pq2kGUtvaTBnCbQ3PWxTq9vrMEEQiZb06iqvzMmRy637pShslt9eP4oPXLb22iOcPOOSk7zC5D hRoh3d3eT/BOP7IIUAyYqQHV3SOMrg/2KDnYuu9T8xFBYHm1WnFMFopRlEbCBpLAtBSVUgvsuCJR deA7DWdXgSrVVWYXryoWpAtHmSqtOXzq5ANMWWjncSYqH7zcYqBFslKjklN5tHg8cMFjr+q8JJIL pIrsB/QlXYZrguDvPAUt8OwExOwFA7XBunUDWX6rf1jsJwM2vJ72dMp2SpAop6m0fLMDtN18+dmt 03jUCl3v9TH6YgKAXQCy1aPnFDcmXRNX9L01b+Dl6DNFE8I4cOOqwyaJ2ZKa/j2cucHHA84kdtaC AKtIufVJJzb03I2BxWNT+cVob3VuSHHNV6DQaoPpSml9GwGLl0yjI+IPbqqwDKQ6fNNjdfrm3KLy MNEWMbv8gTBlFxigDS19ZwyFoStLSDH3NA7qAoiDIFqFsiF0FyTgTXKwc2HGtBkf6mYKBDAcFNcC i4Z0losOzYW5WvHwlokFmg1JDI63BRdQJNJRNkOljS+5Qg0Dt0zQnBUK802mo56LLLiJ42oMPRnD DeyAmlyucqERV2RWTb6jXXjbXAKY2QzyzrR+tttzVjVZ0i1U78S9bdQpRt2TCsEZeeKR2mXWFrTI 8wZHOscTUOSzEhoKgTVM2Pbs2Kc5uNaO0vLgUkyjCDVpO47ZAJILVOLJG6Kfhp2J0KkHib9BEsbM sR3SME7L2kBrYFJwjXU1Mei7bxxMVFMBFVk7eLnAzPffM5VWoeKzZ4Q7vhQIo0dgjO0E0sFECsrB g0M7qVJtQuKRfN4WnVJjNaxELDMv8XckU4UJAghkx6A= --===============6310618404008910557==--