From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id BE60F3857825 for ; Tue, 25 Oct 2022 11:50:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BE60F3857825 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1666698650; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=uGsJ0/h3S1oDBSLBwUhHVb/0V/AC0XuyJCNzGJfhlHg=; b=WXgs89HBSt7M21MkTLlonXBL/TR2TCBzVDShBLlaO4YtQlz2uZMM5d8D0iv9CfTaNBiGPe tZeQ3fE7QWU7xJtwaa0VEFFXlDWBPTh8+fwib4DoQQtoebrb96N4qpVwzu1l3GQWXWogo3 pjiMJ5jpED0moPcLBSK5Ew4GyJrlWwo= Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-152-00v6rdd7OM6DEjhP0V211Q-1; Tue, 25 Oct 2022 07:50:48 -0400 X-MC-Unique: 00v6rdd7OM6DEjhP0V211Q-1 Received: by mail-ed1-f71.google.com with SMTP id f16-20020a056402355000b00461cf923fdcso4454187edd.13 for ; Tue, 25 Oct 2022 04:50:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uGsJ0/h3S1oDBSLBwUhHVb/0V/AC0XuyJCNzGJfhlHg=; b=PjBqt0fDOWcQ2a4reHHSvi2CkFusyfV9j2iw2U9dNHVgDUvztL961i2tOlPWMUKABB +LGUQ6AlDTuOp4BAdkhNfoqsP1dLo4KWxsDELS1oSbxgZ76otlZAtyge1i7WRHrTqhhP Tq9CbqwfF2y22Q8PKG1d/Ckt0lNDML+mj+Mz4GFbMHW69IrADezVYPVr6LkrK2VPQaAX rbJov38ZdyFPF18ywP/78FkEXj5YiFoAEhjLFVi5tO+R3oIADBeKHNTFVgNTkHFfCpTF jqibOXE0MRAjCzBF/RIsS35NkTdmS9I8dd+VtmYNYnLkhOFGpKzvp+VUlbjCL/9WB6wj oI+w== X-Gm-Message-State: ACrzQf3MqjmLYGUw8v/aJoduLqx2pfORFdUDHZaX1iZsMoTjDpHqAHo9 lR0IAwCWfNHf3O2tFRiM9AQ7ZFAeFtbqp9Y5ByEuKa265hNbFPMFK06j57fZGlcp9qm/7Vr7Lw0 BGvubUgkQQI3gm3xk3QAFxbB3Mj89UhVMgA== X-Received: by 2002:a17:907:7e9a:b0:796:7a21:1520 with SMTP id qb26-20020a1709077e9a00b007967a211520mr26287940ejc.236.1666698647733; Tue, 25 Oct 2022 04:50:47 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5UkUxof/R9v0CDroe775cHDbw6jmuifT3Qly1rBjsn5ZfxGKsS3cdP8Dabjyg2sFQkHAo2aPDKIUHjMDB+uuA= X-Received: by 2002:a17:907:7e9a:b0:796:7a21:1520 with SMTP id qb26-20020a1709077e9a00b007967a211520mr26287926ejc.236.1666698647528; Tue, 25 Oct 2022 04:50:47 -0700 (PDT) MIME-Version: 1.0 References: <20221021232824.1093138-1-polacek@redhat.com> In-Reply-To: <20221021232824.1093138-1-polacek@redhat.com> From: Jonathan Wakely Date: Tue, 25 Oct 2022 12:50:36 +0100 Message-ID: Subject: Re: [PATCH] c++: Implement -Wdangling-reference [PR106393] To: Marek Polacek Cc: Jason Merrill , GCC Patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000d5b7e605ebda8409" X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000d5b7e605ebda8409 Content-Type: text/plain; charset="UTF-8" On Sat, 22 Oct 2022 at 00:28, Marek Polacek wrote: > I've run the testsuite/bootstrap with the warning enabled by default. > There were just a few FAILs: > * g++.dg/warn/Wdangling-pointer-2.C > * 20_util/any/misc/any_cast.cc > * 20_util/forward/c_neg.cc > * 20_util/forward/f_neg.cc These two are XFAIL tests, they're checking for a required static assert due to misusing std::forward, so I don't think we want to change them to remove a "bug" (they're meant to be buggy). I think they should use -Wno-dangling-reference > * experimental/any/misc/any_cast.cc > all of these look like genuine bugs. A bootstrap with the warning > enabled by default passed. I've attached a patch for the two any_cast.cc tests that avoids creating dangling references, without changing the intended behaviour of the tests. --000000000000d5b7e605ebda8409 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9o5bwvf0 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9hbnkvbWlzYy9hbnlf Y2FzdC5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9hbnkvbWlzYy9hbnlfY2Fz dC5jYwppbmRleCA4ZDYzZGZiYmE5Yi4uNDNmOTBjMzM2YzkgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My90ZXN0c3VpdGUvMjBfdXRpbC9hbnkvbWlzYy9hbnlfY2FzdC5jYworKysgYi9saWJzdGRj KystdjMvdGVzdHN1aXRlLzIwX3V0aWwvYW55L21pc2MvYW55X2Nhc3QuY2MKQEAgLTkzLDcgKzkz LDggQEAgdm9pZCB0ZXN0MDMoKQogICBNb3ZlRW5hYmxlZCBtOwogICBNb3ZlRW5hYmxlZCBtMiA9 IGFueV9jYXN0PE1vdmVFbmFibGVkPihhbnkobSkpOwogICBWRVJJRlkobW92ZV9jb3VudCA9PSAx KTsKLSAgTW92ZUVuYWJsZWQmJiBtMyA9IGFueV9jYXN0PE1vdmVFbmFibGVkJiY+KGFueShtKSk7 CisgIGF1dG8gcnZhbHVlID0gW10oTW92ZUVuYWJsZWQmJikgeyB9OworICBydmFsdWUoYW55X2Nh c3Q8TW92ZUVuYWJsZWQmJj4oYW55KG0pKSk7IC8vIE5vIG1vdmUgY29uc3RydWN0aW9uLCBqdXN0 IGEgY2FzdC4KICAgVkVSSUZZKG1vdmVfY291bnQgPT0gMSk7CiB9CiAKZGlmZiAtLWdpdCBhL2xp YnN0ZGMrKy12My90ZXN0c3VpdGUvZXhwZXJpbWVudGFsL2FueS9taXNjL2FueV9jYXN0LmNjIGIv bGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9leHBlcmltZW50YWwvYW55L21pc2MvYW55X2Nhc3QuY2MK aW5kZXggZjNjZTgzYWQ3MDIuLjk4MzQ3ZjZkMzdkIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv dGVzdHN1aXRlL2V4cGVyaW1lbnRhbC9hbnkvbWlzYy9hbnlfY2FzdC5jYworKysgYi9saWJzdGRj KystdjMvdGVzdHN1aXRlL2V4cGVyaW1lbnRhbC9hbnkvbWlzYy9hbnlfY2FzdC5jYwpAQCAtOTIs NyArOTIsOCBAQCB2b2lkIHRlc3QwMygpCiAgIE1vdmVFbmFibGVkIG07CiAgIE1vdmVFbmFibGVk IG0yID0gYW55X2Nhc3Q8TW92ZUVuYWJsZWQ+KGFueShtKSk7CiAgIFZFUklGWShtb3ZlX2NvdW50 ID09IDEpOwotICBNb3ZlRW5hYmxlZCYmIG0zID0gYW55X2Nhc3Q8TW92ZUVuYWJsZWQmJj4oYW55 KG0pKTsKKyAgYXV0byBydmFsdWUgPSBbXShNb3ZlRW5hYmxlZCYmKSB7IH07IC8vIENhbiBvbmx5 IGJlIGNhbGxlZCB3aXRoIGFuIHJ2YWx1ZS4KKyAgcnZhbHVlKGFueV9jYXN0PE1vdmVFbmFibGVk JiY+KGFueShtKSkpOyAvLyBEb2Vzbid0IG1vdmUsIGp1c3QgY2FzdHMgdG8gcnZhbC4KICAgVkVS SUZZKG1vdmVfY291bnQgPT0gMSk7CiAgIHN0cnVjdCBNb3ZlRGVsZXRlZAogICB7CkBAIC0xMDEs OCArMTAyLDkgQEAgdm9pZCB0ZXN0MDMoKQogICAgIE1vdmVEZWxldGVkKGNvbnN0IE1vdmVEZWxl dGVkJikgPSBkZWZhdWx0OwogICB9OwogICBNb3ZlRGVsZXRlZCBtZDsKLSAgTW92ZURlbGV0ZWQm JiBtZDIgPSBhbnlfY2FzdDxNb3ZlRGVsZXRlZD4oYW55KHN0ZDo6bW92ZShtZCkpKTsKLSAgTW92 ZURlbGV0ZWQmJiBtZDMgPSBhbnlfY2FzdDxNb3ZlRGVsZXRlZCYmPihhbnkoc3RkOjptb3ZlKG1k KSkpOworICBhdXRvIHJ2YWx1ZTIgPSBbXShNb3ZlRGVsZXRlZCYmKSB7IH07IC8vIENhbiBvbmx5 IGJlIGNhbGxlZCB3aXRoIGFuIHJ2YWx1ZS4KKyAgcnZhbHVlMihhbnlfY2FzdDxNb3ZlRGVsZXRl ZD4oYW55KHN0ZDo6bW92ZShtZCkpKSk7CisgIHJ2YWx1ZTIoYW55X2Nhc3Q8TW92ZURlbGV0ZWQm Jj4oYW55KHN0ZDo6bW92ZShtZCkpKSk7CiB9CiAKIHZvaWQgdGVzdDA1KCkK --000000000000d5b7e605ebda8409--