From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 113252 invoked by alias); 6 Dec 2018 21:12:07 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 112464 invoked by uid 89); 6 Dec 2018 21:12:07 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=gol, cpp, international, International X-HELO: mail-ot1-f51.google.com Received: from mail-ot1-f51.google.com (HELO mail-ot1-f51.google.com) (209.85.210.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 06 Dec 2018 21:12:04 +0000 Received: by mail-ot1-f51.google.com with SMTP id s5so1801105oth.7 for ; Thu, 06 Dec 2018 13:12:04 -0800 (PST) MIME-Version: 1.0 From: Jason Merrill Date: Thu, 06 Dec 2018 21:12:00 -0000 Message-ID: Subject: C++ PATCH for c++/88136, -Wdeprecated-copy too noisy To: gcc-patches List Cc: Ville Voutilainen Content-Type: multipart/mixed; boundary="0000000000002f2ff8057c60f38d" X-IsSubscribed: yes X-SW-Source: 2018-12/txt/msg00406.txt.bz2 --0000000000002f2ff8057c60f38d Content-Type: text/plain; charset="UTF-8" Content-length: 593 -Wdeprecated-copy does find some real bugs, but it also complains about a lot of reasonable code for which the implicitly declared copy ctor/op= are fine oven though the class has a user-defined destructor: this situation is only problematic if the destructor releases resources held in one of the non-static data members. So, this patch reins it in somewhat: first by moving from -Wall to -Wextra, and then also only complaining if the other copy op is user-declared. The old behavior can be explicitly requested with -Wdeprecated-copy-dtor. Tested x86_64-pc-linux-gnu, applying to trunk. --0000000000002f2ff8057c60f38d Content-Type: text/x-patch; charset="US-ASCII"; name="88136.diff" Content-Disposition: attachment; filename="88136.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jpd3jb640 Content-length: 9277 Y29tbWl0IGMzNzM3NzQxNmRjYmYyMWM2YjlmNmM3YjgzZmQ4Zjk1ODdiMGE1 MTcKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFdlZCBOb3YgMjEgMTg6MDQ6MDIgMjAxOCAtMDUwMAoKICAgICAg ICAgICAgUFIgYysrLzg4MTM2IC0gLVdkZXByZWNhdGVkLWNvcHkgZmFsc2Ug cG9zaXRpdmVzCiAgICAKICAgIERlcHJlY2F0aW5nIHRoZSBjb3B5IG9wZXJh dGlvbnMgYmVjYXVzZSB0aGUgY2xhc3MgaGFzIGEgdXNlci1wcm92aWRlZAog ICAgZGVzdHJ1Y3RvciB0dXJucyBvdXQgdG8gaGF2ZSB0b28gbWFueSBmYWxz ZSBwb3NpdGl2ZXM7IHRoaXMgcGF0Y2ggYWRqdXN0cwogICAgLVdkZXByZWNh dGVkLWNvcHkgdG8gb25seSBkZXByZWNhdGUgaWYgdGhlIG90aGVyIGNvcHkg b3BlcmF0aW9uIGlzCiAgICB1c2VyLXByb3ZpZGVkLiAgVG8gZ2V0IHRoZSBl YXJsaWVyIGJlaGF2aW9yLCBwZW9wbGUgY2FuIGV4cGxpY2l0bHkgcmVxdWVz dAogICAgaXQgd2l0aCAtV2RlcHJlY2F0ZWQtY29weS1kdG9yLgogICAgCiAg ICBnY2MvYy1mYW1pbHkvCiAgICAgICAgICAgICogYy5vcHQgKFdkZXByZWNh dGVkLWNvcHktZHRvcik6IE5ldy4KICAgICAgICAgICAgKFdkZXByZWNhdGVk LWNvcHkpOiBNb3ZlIHRvIC1XZXh0cmEuCiAgICBnY2MvY3AvCiAgICAgICAg ICAgICogY2xhc3MuYyAoY2xhc3N0eXBlX2hhc19kZXByX2ltcGxpY2l0X2Nv cHkpOiBSZW5hbWUgZnJvbQogICAgICAgICAgICBjbGFzc3R5cGVfaGFzX3Vz ZXJfY29weV9vcl9kdG9yLgogICAgICAgICAgICAqIG1ldGhvZC5jIChsYXpp bHlfZGVjbGFyZV9mbik6IEFkanVzdC4KICAgICAgICAgICAgKiBkZWNsMi5j IChjcF93YXJuX2RlcHJlY2F0ZWRfdXNlKTogUmVmZXIgdG8gLVdkZXByZWNh dGVkLWNvcHktZHRvcgogICAgICAgICAgICBpZiBkZXByZWNhdGlvbiBpcyBk dWUgdG8gYSBkZXN0cnVjdG9yLgoKZGlmZiAtLWdpdCBhL2djYy9kb2MvaW52 b2tlLnRleGkgYi9nY2MvZG9jL2ludm9rZS50ZXhpCmluZGV4IDNiNjkxMmVh MWNjLi45OGMxYTc0ODMyOSAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9pbnZva2Uu dGV4aQorKysgYi9nY2MvZG9jL2ludm9rZS50ZXhpCkBAIC0yMjgsNyArMjI4 LDggQEAgaW4gdGhlIGZvbGxvd2luZyBzZWN0aW9ucy4KIC1mdmlzaWJpbGl0 eS1tcy1jb21wYXQgQGdvbAogLWZleHQtbnVtZXJpYy1saXRlcmFscyBAZ29s CiAtV2FiaT1AdmFye259ICAtV2FiaS10YWcgIC1XY29udmVyc2lvbi1udWxs ICAtV2N0b3ItZHRvci1wcml2YWN5IEBnb2wKLS1XZGVsZXRlLW5vbi12aXJ0 dWFsLWR0b3IgIC1XZGVwcmVjYXRlZC1jb3B5ICAtV2xpdGVyYWwtc3VmZml4 IEBnb2wKKy1XZGVsZXRlLW5vbi12aXJ0dWFsLWR0b3IgIC1XZGVwcmVjYXRl ZC1jb3B5ICAtV2RlcHJlY2F0ZWQtY29weS1kdG9yIEBnb2wKKy1XbGl0ZXJh bC1zdWZmaXggQGdvbAogLVdtdWx0aXBsZS1pbmhlcml0YW5jZSAgLVduby1p bml0LWxpc3QtbGlmZXRpbWUgQGdvbAogLVduYW1lc3BhY2VzICAtV25hcnJv d2luZyBAZ29sCiAtV3Blc3NpbWl6aW5nLW1vdmUgIC1XcmVkdW5kYW50LW1v dmUgQGdvbApAQCAtMzAwMCw4ICszMDAxLDEwIEBAIGJ5IEBvcHRpb257LVdh bGx9LgogQG9waW5kZXggV25vLWRlcHJlY2F0ZWQtY29weQogV2FybiB0aGF0 IHRoZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBhIGNvcHkgY29uc3RydWN0 b3Igb3IgY29weQogYXNzaWdubWVudCBvcGVyYXRvciBpcyBkZXByZWNhdGVk IGlmIHRoZSBjbGFzcyBoYXMgYSB1c2VyLXByb3ZpZGVkCi1jb3B5IGNvbnN0 cnVjdG9yLCBjb3B5IGFzc2lnbm1lbnQgb3BlcmF0b3IsIG9yIGRlc3RydWN0 b3IsIGluIEMrKzExCi1hbmQgdXAuICBUaGlzIHdhcm5pbmcgaXMgZW5hYmxl ZCBieSBAb3B0aW9uey1XYWxsfS4KK2NvcHkgY29uc3RydWN0b3Igb3IgY29w eSBhc3NpZ25tZW50IG9wZXJhdG9yLCBpbiBDKysxMSBhbmQgdXAuICBUaGlz Cit3YXJuaW5nIGlzIGVuYWJsZWQgYnkgQG9wdGlvbnstV2V4dHJhfS4gIFdp dGgKK0BvcHRpb257LVdkZXByZWNhdGVkLWNvcHktZHRvcn0sIGFsc28gZGVw cmVjYXRlIGlmIHRoZSBjbGFzcyBoYXMgYQordXNlci1wcm92aWRlZCBkZXN0 cnVjdG9yLgogCiBAaXRlbSAtV25vLWluaXQtbGlzdC1saWZldGltZSBAcnso QysrIGFuZCBPYmplY3RpdmUtQysrIG9ubHkpfQogQG9waW5kZXggV2luaXQt bGlzdC1saWZldGltZQpAQCAtNDQwNyw2ICs0NDEwLDcgQEAgbmFtZSBpcyBz dGlsbCBzdXBwb3J0ZWQsIGJ1dCB0aGUgbmV3ZXIgbmFtZSBpcyBtb3JlIGRl c2NyaXB0aXZlLikKIAogQGdjY29wdGxpc3R7LVdjbG9iYmVyZWQgIEBnb2wK IC1XY2FzdC1mdW5jdGlvbi10eXBlICBAZ29sCistV2RlcHJlY2F0ZWQtY29w eSBAcnsoQysrIG9ubHkpfSBAZ29sCiAtV2VtcHR5LWJvZHkgIEBnb2wKIC1X aWdub3JlZC1xdWFsaWZpZXJzIEBnb2wKIC1XaW1wbGljaXQtZmFsbHRocm91 Z2g9MyBAZ29sCmRpZmYgLS1naXQgYS9nY2MvYy1mYW1pbHkvYy5vcHQgYi9n Y2MvYy1mYW1pbHkvYy5vcHQKaW5kZXggNmY4OGExMDEzZDYuLjA3ZmYxYzg0 Zjk2IDEwMDY0NAotLS0gYS9nY2MvYy1mYW1pbHkvYy5vcHQKKysrIGIvZ2Nj L2MtZmFtaWx5L2Mub3B0CkBAIC00ODEsNyArNDgxLDEyIEBAIEMgQysrIE9i akMgT2JqQysrIENQUChjcHBfd2Fybl9kZXByZWNhdGVkKSBDcHBSZWFzb24o Q1BQX1dfREVQUkVDQVRFRCkgVmFyKHdhcm5fCiBXYXJuIGlmIGEgZGVwcmVj YXRlZCBjb21waWxlciBmZWF0dXJlLCBjbGFzcywgbWV0aG9kLCBvciBmaWVs ZCBpcyB1c2VkLgogCiBXZGVwcmVjYXRlZC1jb3B5Ci1DKysgT2JqQysrIFZh cih3YXJuX2RlcHJlY2F0ZWRfY29weSkgV2FybmluZyBMYW5nRW5hYmxlZEJ5 KEMrKyBPYmpDKyssIFdhbGwpCitDKysgT2JqQysrIFZhcih3YXJuX2RlcHJl Y2F0ZWRfY29weSkgV2FybmluZyBMYW5nRW5hYmxlZEJ5KEMrKyBPYmpDKyss IFdleHRyYSkKK01hcmsgaW1wbGljaXRseS1kZWNsYXJlZCBjb3B5IG9wZXJh dGlvbnMgYXMgZGVwcmVjYXRlZCBpZiB0aGUgY2xhc3MgaGFzIGEKK3VzZXIt cHJvdmlkZWQgY29weSBvcGVyYXRpb24uCisKK1dkZXByZWNhdGVkLWNvcHkt ZHRvcgorQysrIE9iakMrKyBWYXIod2Fybl9kZXByZWNhdGVkX2NvcHksIDIp IFdhcm5pbmcKIE1hcmsgaW1wbGljaXRseS1kZWNsYXJlZCBjb3B5IG9wZXJh dGlvbnMgYXMgZGVwcmVjYXRlZCBpZiB0aGUgY2xhc3MgaGFzIGEKIHVzZXIt cHJvdmlkZWQgY29weSBvcGVyYXRpb24gb3IgZGVzdHJ1Y3Rvci4KIApkaWZm IC0tZ2l0IGEvZ2NjL2NwL2NwLXRyZWUuaCBiL2djYy9jcC9jcC10cmVlLmgK aW5kZXggMTExYTEyM2JiMzQuLjg4NmFiZWFhM2Y5IDEwMDY0NAotLS0gYS9n Y2MvY3AvY3AtdHJlZS5oCisrKyBiL2djYy9jcC9jcC10cmVlLmgKQEAgLTYy NzIsNyArNjI3Miw3IEBAIGV4dGVybiBib29sIHR5cGVfaGFzX2NvbnN0ZXhw cl9kZWZhdWx0X2NvbnN0cnVjdG9yICh0cmVlKTsKIGV4dGVybiBib29sIHR5 cGVfaGFzX3ZpcnR1YWxfZGVzdHJ1Y3RvcgkJKHRyZWUpOwogZXh0ZXJuIGJv b2wgY2xhc3N0eXBlX2hhc19tb3ZlX2Fzc2lnbl9vcl9tb3ZlX2N0b3JfcCAo dHJlZSwgYm9vbCB1c2VyX2RlY2xhcmVkKTsKIGV4dGVybiBib29sIGNsYXNz dHlwZV9oYXNfbm9uX2RlbGV0ZWRfbW92ZV9jdG9yICh0cmVlKTsKLWV4dGVy biB0cmVlIGNsYXNzdHlwZV9oYXNfdXNlcl9jb3B5X29yX2R0b3IJKHRyZWUp OworZXh0ZXJuIHRyZWUgY2xhc3N0eXBlX2hhc19kZXByX2ltcGxpY2l0X2Nv cHkJKHRyZWUpOwogZXh0ZXJuIGJvb2wgdHlwZV9idWlsZF9jdG9yX2NhbGwJ CSh0cmVlKTsKIGV4dGVybiBib29sIHR5cGVfYnVpbGRfZHRvcl9jYWxsCQko dHJlZSk7CiBleHRlcm4gdm9pZCBleHBsYWluX25vbl9saXRlcmFsX2NsYXNz CQkodHJlZSk7CmRpZmYgLS1naXQgYS9nY2MvY3AvY2xhc3MuYyBiL2djYy9j cC9jbGFzcy5jCmluZGV4IDU3MjYxNTExYTkwLi45YzE3NWY4NWNmNiAxMDA2 NDQKLS0tIGEvZ2NjL2NwL2NsYXNzLmMKKysrIGIvZ2NjL2NwL2NsYXNzLmMK QEAgLTUyMzMsNyArNTIzMyw3IEBAIGNsYXNzdHlwZV9oYXNfbm9uX2RlbGV0 ZWRfbW92ZV9jdG9yICh0cmVlIHQpCiAgICBvcGVyYXRvciwgb3IgZGVzdHJ1 Y3RvciwgcmV0dXJucyB0aGF0IGZ1bmN0aW9uLiAgT3RoZXJ3aXNlLCBudWxs LiAgKi8KIAogdHJlZQotY2xhc3N0eXBlX2hhc191c2VyX2NvcHlfb3JfZHRv ciAodHJlZSB0KQorY2xhc3N0eXBlX2hhc19kZXByX2ltcGxpY2l0X2NvcHkg KHRyZWUgdCkKIHsKICAgaWYgKCFDTEFTU1RZUEVfTEFaWV9DT1BZX0NUT1Ig KHQpKQogICAgIGZvciAob3ZsX2l0ZXJhdG9yIGl0ZXIgKENMQVNTVFlQRV9D T05TVFJVQ1RPUlMgKHQpKTsgaXRlcjsgKytpdGVyKQpkaWZmIC0tZ2l0IGEv Z2NjL2NwL2RlY2wyLmMgYi9nY2MvY3AvZGVjbDIuYwppbmRleCA3OWFiZGFl YmU4Ni4uNDRlNmVmMzc5ZWQgMTAwNjQ0Ci0tLSBhL2djYy9jcC9kZWNsMi5j CisrKyBiL2djYy9jcC9kZWNsMi5jCkBAIC01Mjc1LDE4ICs1Mjc1LDIzIEBA IGNwX3dhcm5fZGVwcmVjYXRlZF91c2UgKHRyZWUgZGVjbCwgdHN1YnN0X2Zs YWdzX3QgY29tcGxhaW4pCiAgICAgICAmJiBERUNMX05PTlNUQVRJQ19NRU1C RVJfRlVOQ1RJT05fUCAoZGVjbCkKICAgICAgICYmIGNvcHlfZm5fcCAoZGVj bCkpCiAgICAgewotICAgICAgYXV0b19kaWFnbm9zdGljX2dyb3VwIGQ7Ci0g ICAgICAvKiBEb24ndCB3YXJuIGFib3V0IHN5c3RlbSBsaWJyYXJ5IGNsYXNz ZXMgKGMrKy84NjM0MikuICAqLwotICAgICAgaWYgKCFERUNMX0lOX1NZU1RF TV9IRUFERVIgKGRlY2wpKQotCXdhcm5lZCA9IHdhcm5pbmcgKE9QVF9XZGVw cmVjYXRlZF9jb3B5LAotCQkJICAiaW1wbGljaXRseS1kZWNsYXJlZCAlcUQg aXMgZGVwcmVjYXRlZCIsIGRlY2wpOwotICAgICAgaWYgKHdhcm5lZCkKKyAg ICAgIGlmICh3YXJuX2RlcHJlY2F0ZWRfY29weQorCSAgLyogRG9uJ3Qgd2Fy biBhYm91dCBzeXN0ZW0gbGlicmFyeSBjbGFzc2VzIChjKysvODYzNDIpLiAg Ki8KKwkgICYmICghREVDTF9JTl9TWVNURU1fSEVBREVSIChkZWNsKQorCSAg ICAgIHx8IGdsb2JhbF9kYy0+ZGNfd2Fybl9zeXN0ZW1faGVhZGVycykpCiAJ eworCSAgYXV0b19kaWFnbm9zdGljX2dyb3VwIGQ7CiAJICB0cmVlIGN0eCA9 IERFQ0xfQ09OVEVYVCAoZGVjbCk7Ci0JICB0cmVlIG90aGVyID0gY2xhc3N0 eXBlX2hhc191c2VyX2NvcHlfb3JfZHRvciAoY3R4KTsKLQkgIGluZm9ybSAo REVDTF9TT1VSQ0VfTE9DQVRJT04gKG90aGVyKSwKLQkJICAiYmVjYXVzZSAl cVQgaGFzIHVzZXItcHJvdmlkZWQgJXFEIiwKLQkJICBjdHgsIG90aGVyKTsK KwkgIHRyZWUgb3RoZXIgPSBjbGFzc3R5cGVfaGFzX2RlcHJfaW1wbGljaXRf Y29weSAoY3R4KTsKKwkgIGludCBvcHQgPSAoREVDTF9ERVNUUlVDVE9SX1Ag KG90aGVyKQorCQkgICAgID8gT1BUX1dkZXByZWNhdGVkX2NvcHlfZHRvcgor CQkgICAgIDogT1BUX1dkZXByZWNhdGVkX2NvcHkpOworCSAgd2FybmVkID0g d2FybmluZyAob3B0LCAiaW1wbGljaXRseS1kZWNsYXJlZCAlcUQgaXMgZGVw cmVjYXRlZCIsCisJCQkgICAgZGVjbCk7CisJICBpZiAod2FybmVkKQorCSAg ICBpbmZvcm0gKERFQ0xfU09VUkNFX0xPQ0FUSU9OIChvdGhlciksCisJCSAg ICAiYmVjYXVzZSAlcVQgaGFzIHVzZXItcHJvdmlkZWQgJXFEIiwKKwkJICAg IGN0eCwgb3RoZXIpOwogCX0KICAgICB9CiAgIGVsc2UKZGlmZiAtLWdpdCBh L2djYy9jcC9tZXRob2QuYyBiL2djYy9jcC9tZXRob2QuYwppbmRleCA5MzZk YWQ0MjEyMi4uZmQwMjNlMjAwNTMgMTAwNjQ0Ci0tLSBhL2djYy9jcC9tZXRo b2QuYworKysgYi9nY2MvY3AvbWV0aG9kLmMKQEAgLTIzODAsNyArMjM4MCw3 IEBAIGxhemlseV9kZWNsYXJlX2ZuIChzcGVjaWFsX2Z1bmN0aW9uX2tpbmQg c2ZrLCB0cmVlIHR5cGUpCiAgICAgewogICAgICAgaWYgKGNsYXNzdHlwZV9o YXNfbW92ZV9hc3NpZ25fb3JfbW92ZV9jdG9yX3AgKHR5cGUsIHRydWUpKQog CURFQ0xfREVMRVRFRF9GTiAoZm4pID0gdHJ1ZTsKLSAgICAgIGVsc2UgaWYg KGNsYXNzdHlwZV9oYXNfdXNlcl9jb3B5X29yX2R0b3IgKHR5cGUpKQorICAg ICAgZWxzZSBpZiAoY2xhc3N0eXBlX2hhc19kZXByX2ltcGxpY2l0X2NvcHkg KHR5cGUpKQogCS8qIFRoZSBpbXBsaWNpdCBkZWZpbml0aW9uIG9mIGEgY29w eSBjb25zdHJ1Y3RvciBhcyBkZWZhdWx0ZWQgaXMKIAkgICBkZXByZWNhdGVk IGlmIHRoZSBjbGFzcyBoYXMgYSB1c2VyLWRlY2xhcmVkIGNvcHkgYXNzaWdu bWVudCBvcGVyYXRvcgogCSAgIG9yIGEgdXNlci1kZWNsYXJlZCBkZXN0cnVj dG9yLiBUaGUgaW1wbGljaXQgZGVmaW5pdGlvbiBvZiBhIGNvcHkKZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLmRnL2NwcDB4L2RlcHItY29weTEu QyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL2NwcDB4L2RlcHItY29weTEuQwpp bmRleCBkMzNjNmRjNjY3ZC4uYmJiODEzMDM5MjUgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZysrLmRnL2NwcDB4L2RlcHItY29weTEuQworKysgYi9n Y2MvdGVzdHN1aXRlL2crKy5kZy9jcHAweC9kZXByLWNvcHkxLkMKQEAgLTYs NyArNiw3IEBACiAgICBvZiB0aGlzIEludGVybmF0aW9uYWwgU3RhbmRhcmQs IHRoZXNlIGltcGxpY2l0IGRlZmluaXRpb25zIGNvdWxkIGJlY29tZQogICAg ZGVsZXRlZCAoMTEuNCkuICAqLwogCi0vLyB7IGRnLWFkZGl0aW9uYWwtb3B0 aW9ucyAtV2RlcHJlY2F0ZWQtY29weSB9CisvLyB7IGRnLWFkZGl0aW9uYWwt b3B0aW9ucyAtV2RlcHJlY2F0ZWQtY29weS1kdG9yIH0KIAogc3RydWN0IFgK IHsK --0000000000002f2ff8057c60f38d--