From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30940 invoked by alias); 24 May 2017 01:45:49 -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 30797 invoked by uid 89); 24 May 2017 01:45:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=complained X-HELO: mail-io0-f172.google.com Received: from mail-io0-f172.google.com (HELO mail-io0-f172.google.com) (209.85.223.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 24 May 2017 01:45:37 +0000 Received: by mail-io0-f172.google.com with SMTP id k91so108922505ioi.1 for ; Tue, 23 May 2017 18:45:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=hl+kPbuH3XylyCrdv4BhSANtOMuFULsGqL7UPVZvF6w=; b=LZ0ho6/EwFzT5qXARN6EWFvgVXd2B0UVbt14gWxThtaULvzwZ8Hp14v2A3kvXVxk2x 7bPAk4nbKj/7A3rV5lpedoNN0AtMvKXS43MNZCzHc+J/gUR+LD7O7lKuBd+sCFOuLwLB nGjfmiyA9ewHUltwVXmmJdYrbi7Ol4vJiyj0kZgx7DQkqwdyk+gZv4olsUMdk984/9JS Q/Fj7jPImdg0evZbhatTWitQDaoo5uAl0pXXrPitAgGpA946UedaGN6VtzSI42n5nTfy oTgG+KVyCfdv2tOqemYNpHFemJFalG2pJnEvmng2SAlP8v98n9UiJSmztSG2evsGP67D l/lQ== X-Gm-Message-State: AODbwcAOBF2KC9PHezvBCVeDeFE3TEk6xDIa4g1Fsz3ezVO1SgM0XrpD iNiGlJLohLs/mbHWAdGg8ZblEIuHFQh/ X-Received: by 10.107.6.218 with SMTP id f87mr29364653ioi.2.1495590331435; Tue, 23 May 2017 18:45:31 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.6.226 with HTTP; Tue, 23 May 2017 18:45:10 -0700 (PDT) From: Jason Merrill Date: Wed, 24 May 2017 02:23:00 -0000 Message-ID: Subject: C++ PATCH to -Wunused with C++17 structured bindings To: gcc-patches List Cc: Jakub Jelinek Content-Type: multipart/mixed; boundary="001a113fb1ca6f7ef805503b4296" X-IsSubscribed: yes X-SW-Source: 2017-05/txt/msg01815.txt.bz2 --001a113fb1ca6f7ef805503b4296 Content-Type: text/plain; charset="UTF-8" Content-length: 628 Someone on IRC complained that there was no way to suppress -Wunused on structured bindings. It seemed to me that the way the feature works, we shouldn't warn about the bindings individually; users need to give each of the subobjects a name even if they're only interested in using one of them. So this patch switches to tracking whether the underlying aggregate object as a whole is used; using one of the bindings will avoid any warning. This doesn't apply to tuple structured bindings, since in that case the bindings are actual variables rather than aliases to subobjects. Tested x86_64-pc-linux-gnu, applying to trunk. --001a113fb1ca6f7ef805503b4296 Content-Type: text/plain; charset="US-ASCII"; name="sbind-unused.diff" Content-Disposition: attachment; filename="sbind-unused.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j32btzek0 Content-length: 3591 Y29tbWl0IGExMGI3MzdiZWU2ZjI2OWM2ZDZjZjJhNjY4ZDAzZmIzMjJlMWM0 NWUKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFRodSBNYXkgMTEgMTM6MzA6MjQgMjAxNyAtMDQwMAoKICAgICAg ICAgICAgLVd1bnVzZWQgYW5kIEMrKzE3IHN0cnVjdHVyZWQgYmluZGluZ3MK ICAgIAogICAgICAgICAgICAqIGRlY2wuYyAocG9wbGV2ZWwpOiBEb24ndCB3 YXJuIGFib3V0IHVudXNlZCBzdHJ1Y3R1cmVkIGJpbmRpbmdzLAogICAgICAg ICAgICBvbmx5IHJlYWwgdmFyaWFibGVzLgogICAgICAgICAgICAqIGVycm9y LmMgKGR1bXBfc2ltcGxlX2RlY2wpOiBIYW5kbGUgc3RydWN0dXJlZCBiaW5k aW5ncy4KICAgICAgICAgICAgKiBleHByLmMgKG1hcmtfZXhwX3JlYWQpOiBM b29rIHRocm91Z2ggREVDTF9WQUxVRV9FWFBSLgoKZGlmZiAtLWdpdCBhL2dj Yy9jcC9kZWNsLmMgYi9nY2MvY3AvZGVjbC5jCmluZGV4IDU4NzdmMzcuLmFm ZDQ3YmIgMTAwNjQ0Ci0tLSBhL2djYy9jcC9kZWNsLmMKKysrIGIvZ2NjL2Nw L2RlY2wuYwpAQCAtNjU2LDcgKzY1NiwxMCBAQCBwb3BsZXZlbCAoaW50IGtl ZXAsIGludCByZXZlcnNlLCBpbnQgZnVuY3Rpb25ib2R5KQogCWlmIChWQVJf UCAoZGVjbCkKIAkgICAgJiYgKCEgVFJFRV9VU0VEIChkZWNsKSB8fCAhREVD TF9SRUFEX1AgKGRlY2wpKQogCSAgICAmJiAhIERFQ0xfSU5fU1lTVEVNX0hF QURFUiAoZGVjbCkKLQkgICAgJiYgREVDTF9OQU1FIChkZWNsKSAmJiAhIERF Q0xfQVJUSUZJQ0lBTCAoZGVjbCkKKwkgICAgLyogRm9yIHN0cnVjdHVyZWQg YmluZGluZ3MsIGNvbnNpZGVyIG9ubHkgcmVhbCB2YXJpYWJsZXMsIG5vdAor CSAgICAgICBzdWJvYmplY3RzLiAgKi8KKwkgICAgJiYgKERFQ0xfREVDT01Q T1NJVElPTl9QIChkZWNsKSA/ICFERUNMX1ZBTFVFX0VYUFIgKGRlY2wpCisJ CTogKERFQ0xfTkFNRSAoZGVjbCkgJiYgIURFQ0xfQVJUSUZJQ0lBTCAoZGVj bCkpKQogCSAgICAmJiB0eXBlICE9IGVycm9yX21hcmtfbm9kZQogCSAgICAm JiAoIUNMQVNTX1RZUEVfUCAodHlwZSkKIAkJfHwgIVRZUEVfSEFTX05PTlRS SVZJQUxfREVTVFJVQ1RPUiAodHlwZSkKZGlmZiAtLWdpdCBhL2djYy9jcC9l cnJvci5jIGIvZ2NjL2NwL2Vycm9yLmMKaW5kZXggYjY1Y2VlNC4uNjZhNGI2 MCAxMDA2NDQKLS0tIGEvZ2NjL2NwL2Vycm9yLmMKKysrIGIvZ2NjL2NwL2Vy cm9yLmMKQEAgLTk5Miw2ICs5OTIsOCBAQCBkdW1wX3NpbXBsZV9kZWNsIChj eHhfcHJldHR5X3ByaW50ZXIgKnBwLCB0cmVlIHQsIHRyZWUgdHlwZSwgaW50 IGZsYWdzKQogICAgICAgZWxzZQogCWR1bXBfZGVjbCAocHAsIERFQ0xfTkFN RSAodCksIGZsYWdzKTsKICAgICB9CisgIGVsc2UgaWYgKERFQ0xfREVDT01Q T1NJVElPTl9QICh0KSkKKyAgICBwcF9zdHJpbmcgKHBwLCBNXygiPHN0cnVj dHVyZWQgYmluZGluZ3M+IikpOwogICBlbHNlCiAgICAgcHBfc3RyaW5nIChw cCwgTV8oIjxhbm9ueW1vdXM+IikpOwogICBpZiAoZmxhZ3MgJiBURkZfREVD TF9TUEVDSUZJRVJTKQpkaWZmIC0tZ2l0IGEvZ2NjL2NwL2V4cHIuYyBiL2dj Yy9jcC9leHByLmMKaW5kZXggNzdhZjU0ZS4uNzVlOTllNSAxMDA2NDQKLS0t IGEvZ2NjL2NwL2V4cHIuYworKysgYi9nY2MvY3AvZXhwci5jCkBAIC0xMzMs NiArMTMzLDkgQEAgbWFya19leHBfcmVhZCAodHJlZSBleHApCiAgIHN3aXRj aCAoVFJFRV9DT0RFIChleHApKQogICAgIHsKICAgICBjYXNlIFZBUl9ERUNM OgorICAgICAgaWYgKERFQ0xfVkFMVUVfRVhQUiAoZXhwKSkKKwltYXJrX2V4 cF9yZWFkIChERUNMX1ZBTFVFX0VYUFIgKGV4cCkpOworICAgICAgZ2NjX2Zh bGx0aHJvdWdoICgpOwogICAgIGNhc2UgUEFSTV9ERUNMOgogICAgICAgREVD TF9SRUFEX1AgKGV4cCkgPSAxOwogICAgICAgYnJlYWs7CmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2crKy5kZy9jcHAxei9kZWNvbXAyOS5DIGIvZ2Nj L3Rlc3RzdWl0ZS9nKysuZGcvY3BwMXovZGVjb21wMjkuQwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWYwN2EwCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvY3BwMXovZGVjb21wMjku QwpAQCAtMCwwICsxLDI2IEBACisvLyB7IGRnLW9wdGlvbnMgIi1zdGQ9Yysr MTcgLVd1bnVzZWQiIH0KKworI2luY2x1ZGUgPHR1cGxlPgorCitzdHJ1Y3Qg QSB7IGludCBpLGosazsgfTsKKworQSBmKCk7CisKK2ludCB6OworCitpbnQg bWFpbigpCit7CisgIHsKKyAgICBhdXRvIFtpLGosa10gPSBmKCk7CQkvLyB7 IGRnLXdhcm5pbmcgInVudXNlZCIgfQorICB9CisgIHsKKyAgICBhdXRvIFtp LGosa10gPSBmKCk7CisgICAgeiA9IGk7CisgIH0KKyAgeworICAgIGF1dG8g W2ksal0gPSBzdGQ6OnR1cGxlezEsMn07IC8vIHsgZGctd2FybmluZyAidW51 c2VkIiB9CisgIH0KKyAgLy8gTm8gcGFyYWxsZWwgc2Vjb25kIHRlc3QsIGJl Y2F1c2UgaW4gdGhpcyBjYXNlIGkgYW5kIGogYXJlIHZhcmlhYmxlcyByYXRo ZXIKKyAgLy8gdGhhbiBtZXJlIGJpbmRpbmdzLCBzbyB0aGVyZSBpc24ndCBh IGxpbmsgYmV0d2VlbiB0aGVtIGFuZCB1c2luZyBpIHdpbGwKKyAgLy8gbm90 IHByZXZlbnQgYSB3YXJuaW5nIGFib3V0IHVudXNlZCBqLgorfQo= --001a113fb1ca6f7ef805503b4296--