From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13922 invoked by alias); 10 Nov 2011 19:48:33 -0000 Received: (qmail 13913 invoked by uid 22791); 10 Nov 2011 19:48:32 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_NV X-Spam-Check-By: sourceware.org Received: from mail-wy0-f175.google.com (HELO mail-wy0-f175.google.com) (74.125.82.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 10 Nov 2011 19:48:18 +0000 Received: by wyh5 with SMTP id 5so3481533wyh.20 for ; Thu, 10 Nov 2011 11:48:16 -0800 (PST) MIME-Version: 1.0 Received: by 10.216.131.85 with SMTP id l63mr1874wei.1.1320954496792; Thu, 10 Nov 2011 11:48:16 -0800 (PST) Received: by 10.216.63.83 with HTTP; Thu, 10 Nov 2011 11:48:16 -0800 (PST) In-Reply-To: <4EB851F2.4090107@redhat.com> References: <4EB851F2.4090107@redhat.com> Date: Thu, 10 Nov 2011 20:17:00 -0000 Message-ID: Subject: Re: [patch] c++/2972 warn when ctor-initializer leaves uninitialized data From: Jonathan Wakely To: Jason Merrill Cc: gcc-patches Content-Type: multipart/mixed; boundary=0016e6d99ee18bb81e04b166afb8 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 X-SW-Source: 2011-11/txt/msg01459.txt.bz2 --0016e6d99ee18bb81e04b166afb8 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 423 On 7 November 2011 21:47, Jason Merrill wrote: > On 11/07/2011 04:43 PM, Jonathan Wakely wrote: >> >> Unfortunately this doesn't work very well in C++11 mode, as defaulted >> constructors don't cause warnings when they should do e.g. > > Maybe check this in defaulted_late_check? I tried that (attached) and it does cause warnings in defaulted constructed, but even for members with an NSDMI, which are not uninitialized. --0016e6d99ee18bb81e04b166afb8 Content-Type: text/x-patch; charset=US-ASCII; name="2972.patch" Content-Disposition: attachment; filename="2972.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_guu6614g0 Content-length: 6397 SW5kZXg6IGMtZmFtaWx5L2Mub3B0Cj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGMtZmFtaWx5L2Mub3B0CShyZXZpc2lvbiAxODExNzMpCisrKyBjLWZh bWlseS9jLm9wdAkod29ya2luZyBjb3B5KQpAQCAtNDYxLDYgKzQ2MSwxMCBA QCBXbWFpbgogQyBPYmpDIEMrKyBPYmpDKysgVmFyKHdhcm5fbWFpbikgSW5p dCgtMSkgV2FybmluZwogV2FybiBhYm91dCBzdXNwaWNpb3VzIGRlY2xhcmF0 aW9ucyBvZiBcIm1haW5cIgogCitXbWVtaW5pdAorQysrIFZhcih3YXJuX21l bWluaXQpIFdhcm5pbmcKK1dhcm4gYWJvdXQgUE9EIG1lbWJlcnMgd2hpY2gg YXJlIG5vdCBpbml0aWFsaXplZCBpbiBhIGNvbnN0cnVjdG9yIGluaXRpYWxp emF0aW9uIGxpc3QKKwogV21pc3NpbmctYnJhY2VzCiBDIE9iakMgQysrIE9i akMrKyBWYXIod2Fybl9taXNzaW5nX2JyYWNlcykgV2FybmluZwogV2FybiBh Ym91dCBwb3NzaWJseSBtaXNzaW5nIGJyYWNlcyBhcm91bmQgaW5pdGlhbGl6 ZXJzCkluZGV4OiBjLWZhbWlseS9jLW9wdHMuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBjLWZhbWlseS9jLW9wdHMuYwkocmV2aXNpb24gMTgxMTcz KQorKysgYy1mYW1pbHkvYy1vcHRzLmMJKHdvcmtpbmcgY29weSkKQEAgLTU1 MCw3ICs1NTAsMTQgQEAgY19jb21tb25faGFuZGxlX29wdGlvbiAoc2l6ZV90 IHNjb2RlLCBjbwogICAgIGNhc2UgT1BUX1dlZmZjX186CiAgICAgICB3YXJu X2VjcHAgPSB2YWx1ZTsKICAgICAgIGlmICh2YWx1ZSkKLSAgICAgICAgd2Fy bl9ub252ZHRvciA9IHRydWU7CisgICAgICAgIHsKKyAgICAgICAgICAvKiBF ZmZlY3RpdmUgQysrIHJ1bGUgMTIgc2F5cyB0byBwcmVmZXIgdXNpbmcgYSBt ZW0taW5pdGlhbGl6ZXIKKyAgICAgICAgICAgICB0byBhc3NpZ25tZW50LiAq LworICAgICAgICAgIHdhcm5fbWVtaW5pdCA9IHRydWU7CisgICAgICAgICAg LyogRWZmZWN0aXZlIEMrKyBydWxlIDE0IHNheXMgdG8gZGVjbGFyZSBkZXN0 cnVjdG9ycyB2aXJ0dWFsCisgICAgICAgICAgICAgaW4gcG9seW1vcnBoaWMg Y2xhc3Nlcy4gKi8KKyAgICAgICAgICB3YXJuX25vbnZkdG9yID0gdHJ1ZTsK KyAgICAgICAgfQogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE9QVF9hbnNp OgpJbmRleDogY3AvaW5pdC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGNwL2luaXQuYwkocmV2aXNpb24gMTgxMTczKQorKysgY3AvaW5pdC5jCSh3 b3JraW5nIGNvcHkpCkBAIC00ODUsNiArNDg1LDQyIEBAIGJ1aWxkX3ZhbHVl X2luaXRfbm9jdG9yICh0cmVlIHR5cGUsIHRzdWIKICAgcmV0dXJuIGJ1aWxk X3plcm9faW5pdCAodHlwZSwgTlVMTF9UUkVFLCAvKnN0YXRpY19zdG9yYWdl X3A9Ki9mYWxzZSk7CiB9CiAKKy8qIFdhcm4gaWYgZGVmYXVsdCBpbml0aWFs aXphdGlvbiBvZiBNRU1CRVIgb2YgdHlwZSBUWVBFIGluIGNvbnN0cnVjdG9y CisgKiBDT05TIHdpbGwgbGVhdmUgc29tZSBwYXJ0cyB1bmluaXRpYWxpemVk LiAgKi8KKworc3RhdGljIHZvaWQKK3dhcm5fbWVtaW5pdF9sZWF2ZXNfdW5p bml0aWFsaXplZCAodHJlZSBtZW1iZXIsIHRyZWUgdHlwZSwgdHJlZSBjb25z KQoreworICB0cmVlIGZpZWxkID0gZGVmYXVsdF9pbml0X3VuaW5pdGlhbGl6 ZWRfcGFydCAodHlwZSk7CisgIGlmICghZmllbGQpCisgICAgcmV0dXJuOwor CisgIGlmIChERUNMX1AgKGZpZWxkKSkKKyAgICB3YXJuaW5nX2F0IChERUNM X1NPVVJDRV9MT0NBVElPTiAoY29ucyksIE9QVF9XbWVtaW5pdCwKKyAgICAg ICAgICAgICAgICAibm8gbWVtYmVyIGluaXRpYWxpemVyIGZvciAlcUQgc28g JXErI0QgaXMgdW5pbml0aWFsaXplZCIsCisgICAgICAgICAgICAgICAgbWVt YmVyLCBmaWVsZCk7CisgIGVsc2UKKyAgICB3YXJuaW5nX2F0IChERUNMX1NP VVJDRV9MT0NBVElPTiAoY29ucyksIE9QVF9XbWVtaW5pdCwKKyAgICAgICAg ICAgICAgICAibm8gbWVtYmVyIGluaXRpYWxpemVyIGZvciAlcUQgc28gaXQg aXMgdW5pbml0aWFsaXplZCIsCisgICAgICAgICAgICAgICAgbWVtYmVyKTsK K30KKworLyogV2FybiBpZiBkZWZhdWx0ZWQgY29uc3RydWN0b3IgQ09OUyBm b3IgVFlQRSB3aXRoIG5vIG1lbS1pbml0aWFsaXplci1saXN0CisgICB3aWxs IGxlYXZlIHVuaW5pdGlhbGl6ZWQgZGF0YS4gICovCisKK3ZvaWQKK3dhcm5f bWlzc2luZ19tZW1pbml0cyAodHJlZSB0eXBlLCB0cmVlIGNvbnMpCit7Cisg IHRyZWUgbWVtX2luaXRzID0gc29ydF9tZW1faW5pdGlhbGl6ZXJzICh0eXBl LCBOVUxMX1RSRUUpOworICB3aGlsZSAobWVtX2luaXRzKQorICAgIHsKKyAg ICAgIHRyZWUgbWVtYmVyID0gVFJFRV9QVVJQT1NFIChtZW1faW5pdHMpOwor ICAgICAgLyogVE9ETyBkbyBub3Qgd2FybiBpZiBicmFjZS1vci1lcXVhbC1p bml0aWFsaXplciAqLworICAgICAgd2Fybl9tZW1pbml0X2xlYXZlc191bmlu aXRpYWxpemVkIChtZW1iZXIsIFRSRUVfVFlQRSAobWVtYmVyKSwgY29ucyk7 CisgICAgICBtZW1faW5pdHMgPSBUUkVFX0NIQUlOIChtZW1faW5pdHMpOwor ICAgIH0KK30KKwogLyogSW5pdGlhbGl6ZSBNRU1CRVIsIGEgRklFTERfREVD TCwgd2l0aCBJTklULCBhIFRSRUVfTElTVCBvZgogICAgYXJndW1lbnRzLiAg SWYgVFJFRV9MSVNUIGlzIHZvaWRfdHlwZV9ub2RlLCBhbiBlbXB0eSBpbml0 aWFsaXplcgogICAgbGlzdCB3YXMgZ2l2ZW47IGlmIE5VTExfVFJFRSBubyBp bml0aWFsaXplciB3YXMgZ2l2ZW4uICAqLwpAQCAtNTE4LDEyICs1NTQsMTAg QEAgcGVyZm9ybV9tZW1iZXJfaW5pdCAodHJlZSBtZW1iZXIsIHRyZWUgaQog CX0KICAgICB9CiAKLSAgLyogRWZmZWN0aXZlIEMrKyBydWxlIDEyIHJlcXVp cmVzIHRoYXQgYWxsIGRhdGEgbWVtYmVycyBiZQotICAgICBpbml0aWFsaXpl ZC4gICovCi0gIGlmICh3YXJuX2VjcHAgJiYgaW5pdCA9PSBOVUxMX1RSRUUg JiYgVFJFRV9DT0RFICh0eXBlKSAhPSBBUlJBWV9UWVBFKQotICAgIHdhcm5p bmdfYXQgKERFQ0xfU09VUkNFX0xPQ0FUSU9OIChjdXJyZW50X2Z1bmN0aW9u X2RlY2wpLCBPUFRfV2VmZmNfXywKLQkJIiVxRCBzaG91bGQgYmUgaW5pdGlh bGl6ZWQgaW4gdGhlIG1lbWJlciBpbml0aWFsaXphdGlvbiBsaXN0IiwKLQkJ bWVtYmVyKTsKKyAgLyogV2FybiBpZiB0aGVyZSBpcyBubyBpbml0aWFsaXpl ciBmb3IgYSBtZW1iZXIgd2hpY2ggd2lsbCBiZSBsZWZ0CisgICAgIHVuaW5p dGlhbGl6ZWQuICAqLworICBpZiAod2Fybl9tZW1pbml0ICYmIGluaXQgPT0g TlVMTF9UUkVFKQorICAgICAgd2Fybl9tZW1pbml0X2xlYXZlc191bmluaXRp YWxpemVkIChtZW1iZXIsIHR5cGUsIGN1cnJlbnRfZnVuY3Rpb25fZGVjbCk7 CiAKICAgLyogR2V0IGFuIGx2YWx1ZSBmb3IgdGhlIGRhdGEgbWVtYmVyLiAg Ki8KICAgZGVjbCA9IGJ1aWxkX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwciAo Y3VycmVudF9jbGFzc19yZWYsIG1lbWJlciwKSW5kZXg6IGNwL21ldGhvZC5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNwL21ldGhvZC5jCShyZXZp c2lvbiAxODExNzMpCisrKyBjcC9tZXRob2QuYwkod29ya2luZyBjb3B5KQpA QCAtMTY1NSw2ICsxNjU1LDEwIEBAIGRlZmF1bHRlZF9sYXRlX2NoZWNrICh0 cmVlIGZuKQogCiAgIGlmIChERUNMX0RFTEVURURfRk4gKGltcGxpY2l0X2Zu KSkKICAgICBERUNMX0RFTEVURURfRk4gKGZuKSA9IDE7CisKKyAgaWYgKHdh cm5fbWVtaW5pdCAmJiAoa2luZCA9PSBzZmtfY29uc3RydWN0b3IgfHwga2lu ZCA9PSBzZmtfY29weV9jb25zdHJ1Y3RvcgorICAgICAgICB8fCBraW5kID09 IHNma19tb3ZlX2NvbnN0cnVjdG9yKSkKKyAgICB3YXJuX21pc3NpbmdfbWVt aW5pdHMgKGN1cnJlbnRfY2xhc3NfdHlwZSwgZm4pOwogfQogCiAvKiBSZXR1 cm5zIHRydWUgaWZmIEZOIGNhbiBiZSBleHBsaWNpdGx5IGRlZmF1bHRlZCwg YW5kIGdpdmVzIGFueQpJbmRleDogY3AvY3AtdHJlZS5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGNwL2NwLXRyZWUuaAkocmV2aXNpb24gMTgxMTcz KQorKysgY3AvY3AtdHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OTE1LDYg KzQ5MTUsNyBAQCBleHRlcm4gYm9vbCB1c2VyX3Byb3ZpZGVkX3AJCQkodHJl ZSk7CiBleHRlcm4gYm9vbCB0eXBlX2hhc191c2VyX3Byb3ZpZGVkX2NvbnN0 cnVjdG9yICAodHJlZSk7CiBleHRlcm4gYm9vbCB0eXBlX2hhc191c2VyX3By b3ZpZGVkX2RlZmF1bHRfY29uc3RydWN0b3IgKHRyZWUpOwogZXh0ZXJuIHRy ZWUgZGVmYXVsdF9pbml0X3VuaW5pdGlhbGl6ZWRfcGFydCAodHJlZSk7Citl eHRlcm4gdm9pZCB3YXJuX21pc3NpbmdfbWVtaW5pdHMgKHRyZWUsIHRyZWUp OwogZXh0ZXJuIGJvb2wgdHJpdmlhbF9kZWZhdWx0X2NvbnN0cnVjdG9yX2lz X2NvbnN0ZXhwciAodHJlZSk7CiBleHRlcm4gYm9vbCB0eXBlX2hhc19jb25z dGV4cHJfZGVmYXVsdF9jb25zdHJ1Y3RvciAodHJlZSk7CiBleHRlcm4gYm9v bCB0eXBlX2hhc192aXJ0dWFsX2Rlc3RydWN0b3IJCSh0cmVlKTsK --0016e6d99ee18bb81e04b166afb8--