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.129.124]) by sourceware.org (Postfix) with ESMTPS id 06A963858D1E for ; Mon, 13 Mar 2023 15:18:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 06A963858D1E 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=1678720695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c8j8RlTTTEUjgHoYoxy4Au6bwoJ2z13zIQE8QMj/Ajc=; b=QmDnNBuhierUUNRX+VDzQBYERuCmQEQzN0Xg0D7Et3wbdiFZ2/YjJ/XV45qQeTUXbW/yyh jO66sIYrVbV1W8Qb7cH+Nl0Jtg0dO2CGPxp0mT+k4yMeKw0jEdlaOLFjT9hwtoCgc/ihbG eX3YKxJHNm0923zlFDunha7UfjzNL0Y= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-627-BtA4WmdBMfiI0ml5qY6ZQg-1; Mon, 13 Mar 2023 11:18:12 -0400 X-MC-Unique: BtA4WmdBMfiI0ml5qY6ZQg-1 Received: by mail-qt1-f197.google.com with SMTP id c11-20020ac85a8b000000b003bfdd43ac76so6974400qtc.5 for ; Mon, 13 Mar 2023 08:18:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678720692; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=c8j8RlTTTEUjgHoYoxy4Au6bwoJ2z13zIQE8QMj/Ajc=; b=qkNlTcQMzNb++Nx12uPyb7ZqVgFQAduVN6d7sckwMm8xjuufLKijYiTBRZi3A04IdK PQ0/VX6MTmpJYhzuQLuezghun+9oNCfg4MLs8jsvXxZu39CoqFxosbL1CBH0GVcrh9VP 6QEzKLnS2+275O3r3+Jd8pm0cFO09aa1yelp/9lZBG+lYrMowAR69nY5CtIX4JhXh3ha IQDaXNnBThahXKHlXWJCs6CY/NR9UBgMNUcQrzC1eVyGSDD1OpR0hElHjcCCyUhbsTyT Tg5rtyw9pKK1uCZouU4WllQ/D67uawh5Uk+LBPlE4KjfFqX0G+1NAtqFAD5IDim1QQEl zqDg== X-Gm-Message-State: AO0yUKW9mbX2pRM2ozRKnq9/DEISlAjTseqKNLnYa825F2B8ytAd1EMN ysWbPLspxGm1MVEqxByWaX71iy3BmlkGf4sS6/BFYQAnRmmt8Y2rc/YRal3cIbBnfXMDi4CPrtl edijdOwy+a91HIdFHFb1plaKX8Q== X-Received: by 2002:ac8:5e0c:0:b0:3bf:b1d6:359e with SMTP id h12-20020ac85e0c000000b003bfb1d6359emr25860622qtx.7.1678720691849; Mon, 13 Mar 2023 08:18:11 -0700 (PDT) X-Google-Smtp-Source: AK7set8aH3bIIp5D7Y9R2hwUv+DoEoa3qe9xGb9suhBRsNKCMld2M7r4Cv0IiZBKwERZWWjS/6yoLA== X-Received: by 2002:ac8:5e0c:0:b0:3bf:b1d6:359e with SMTP id h12-20020ac85e0c000000b003bfb1d6359emr25860579qtx.7.1678720691447; Mon, 13 Mar 2023 08:18:11 -0700 (PDT) Received: from [192.168.1.108] (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id e11-20020ac8490b000000b003b323387c1asm24671qtq.18.2023.03.13.08.18.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Mar 2023 08:18:10 -0700 (PDT) Message-ID: <046be9c9-c78c-fddb-f2e9-915901029752@redhat.com> Date: Mon, 13 Mar 2023 11:18:09 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH] c++: suppress -Wdangling-reference for std::span [PR107532] To: Marek Polacek , GCC Patches References: <20230310190741.168444-1-polacek@redhat.com> From: Jason Merrill In-Reply-To: <20230310190741.168444-1-polacek@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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,NICE_REPLY_A,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: On 3/10/23 14:07, Marek Polacek wrote: > std::span is a view and therefore should be treated as a reference > wrapper class for the purposes of -Wdangling-reference. I'm not sure > there's a pattern that we could check for. > > Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk? OK. > PR c++/107532 > > gcc/cp/ChangeLog: > > * call.cc (reference_like_class_p): Check for std::span. > > gcc/testsuite/ChangeLog: > > * g++.dg/warn/Wdangling-reference10.C: New test. > --- > gcc/cp/call.cc | 1 + > gcc/testsuite/g++.dg/warn/Wdangling-reference10.C | 12 ++++++++++++ > 2 files changed, 13 insertions(+) > create mode 100644 gcc/testsuite/g++.dg/warn/Wdangling-reference10.C > > diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc > index 3dfa12a0733..c01e7b82457 100644 > --- a/gcc/cp/call.cc > +++ b/gcc/cp/call.cc > @@ -13800,6 +13800,7 @@ reference_like_class_p (tree ctype) > tree name = DECL_NAME (tdecl); > return (name > && (id_equal (name, "reference_wrapper") > + || id_equal (name, "span") > || id_equal (name, "ref_view"))); > } > for (tree fields = TYPE_FIELDS (ctype); > diff --git a/gcc/testsuite/g++.dg/warn/Wdangling-reference10.C b/gcc/testsuite/g++.dg/warn/Wdangling-reference10.C > new file mode 100644 > index 00000000000..733fb8cce63 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/warn/Wdangling-reference10.C > @@ -0,0 +1,12 @@ > +// PR c++/107532 > +// { dg-do compile { target c++20 } } > +// { dg-options "-Wdangling-reference" } > + > +#include > +#include > + > +void f(const std::vector& v) > +{ > + const int& r = std::span(v)[0]; // { dg-bogus "dangling reference" } > + (void) r; > +} > > base-commit: 20d790aa3ea5b0d240032cab997b8e0938cac62c