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 C25653858CDA for ; Mon, 10 Jul 2023 19:23:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C25653858CDA 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=1689016988; 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=MNa/GubH3mkvb2v5UoK8tWoxvJjO3myYpzHb1xkjD4M=; b=BIshUoZlc5eGx2rkn+B8H4fw3IMiTY4as3nPtSEa0MzFRaheQQUvbiWBaIcCfpPevE4+se rBjx5XVURfCjORMA/gzGSz2lx8YoG7rmKtFIZxqQrYH8Vfgu15Sh4pxiyk/jJp5kkfTNBX eMXSZ74R0QjmEERWWG9SKRQFQOPHo4o= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-244-l8vDJ8mLMmCs2AfViHxVow-1; Mon, 10 Jul 2023 15:23:05 -0400 X-MC-Unique: l8vDJ8mLMmCs2AfViHxVow-1 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7679e5ebad2so717313485a.3 for ; Mon, 10 Jul 2023 12:23:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689016985; x=1691608985; h=mime-version:references:message-id:in-reply-to:subject:cc:to:date :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MNa/GubH3mkvb2v5UoK8tWoxvJjO3myYpzHb1xkjD4M=; b=IOktRA8cyNFXxHXQaK+667E7pk5+M3u7XqedrVVzz6vvzl0sGBKoqg94MGALT0cXpy xzv9VT6zToWL4woY3qdQKY6zE/HUFubX1pob94kI6xDtZ+ga2aDbhK5anmARZI5ZYsQC j1BYu7LNejK4VEF0mzqpBV2w7TIs/gopqlw0Xt4dndggV/hM0hg2MokuhUTS89sGd1Px +W379CdlTI8ceoIoUFZA8MZwmIkjaSJMK89PaTyw8w4aUFysPCmE/SG9c4EHCAG1Zrw+ c3Qr7GDuaeTk4GNeg19wMSn5AM1QCF4yZvGMeicFpxL/lm8pLZjp/M03T8ejQADuR3Vo 33iQ== X-Gm-Message-State: ABy/qLZJUkrJGf34FGIdE8vWKLg7NqS1z5guYEGN0t/mMH33bpEDU13I apFYThVvFNosLJF32t8OKJ3kdyTLbhyF1Z/TitEh2db2VLKYc2a0BAJUwrQmknR1uFpbXCyzG5D GwpHL/cOtgjeB2mLmPw== X-Received: by 2002:a05:620a:2b24:b0:765:ab7c:895e with SMTP id do36-20020a05620a2b2400b00765ab7c895emr13688264qkb.24.1689016984866; Mon, 10 Jul 2023 12:23:04 -0700 (PDT) X-Google-Smtp-Source: APBJJlHd1dPZT8AieFUWQrhO30BVdOuc392g7zrmJnk5EpfBPdCchaNztapB14jIS7bR65qIK70NvQ== X-Received: by 2002:a05:620a:2b24:b0:765:ab7c:895e with SMTP id do36-20020a05620a2b2400b00765ab7c895emr13688251qkb.24.1689016984682; Mon, 10 Jul 2023 12:23:04 -0700 (PDT) Received: from [192.168.1.130] (ool-457670bb.dyn.optonline.net. [69.118.112.187]) by smtp.gmail.com with ESMTPSA id v9-20020ae9e309000000b0076264532630sm151990qkf.121.2023.07.10.12.23.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Jul 2023 12:23:04 -0700 (PDT) From: Patrick Palka X-Google-Original-From: Patrick Palka Date: Mon, 10 Jul 2023 15:23:03 -0400 (EDT) To: Nathaniel Shead cc: gcc-patches@gcc.gnu.org, Patrick Palka , jason@redhat.com Subject: Re: [PATCH v3 0/3] c++: Track lifetimes in constant evaluation [PR70331,...] In-Reply-To: Message-ID: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,URI_HEX 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 Sat, 1 Jul 2023, Nathaniel Shead wrote: > This is an update of the patch series at > https://gcc.gnu.org/pipermail/gcc-patches/2023-March/614811.html > > Changes since v2: > > - Use a separate 'hash_set' to track expired variables instead of > adding a flag to 'lang_decl_base'. > - Use 'iloc_sentinel' to propagate location information down to > subexpressions instead of manually saving and falling back to a > parent expression's location. > - Update more tests with improved error location information. Thanks very much! This patch series looks good to me. > > Bootstrapped and regtested on x86_64-pc-linux-gnu. > > --- > > Nathaniel Shead (3): > c++: Track lifetimes in constant evaluation [PR70331,PR96630,PR98675] > c++: Improve constexpr error for dangling local variables > c++: Improve location information in constant evaluation > > gcc/cp/constexpr.cc | 158 +++++++++++++++--- > gcc/cp/semantics.cc | 5 +- > gcc/cp/typeck.cc | 5 +- > gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C | 10 +- > gcc/testsuite/g++.dg/cpp0x/constexpr-70323.C | 8 +- > gcc/testsuite/g++.dg/cpp0x/constexpr-70323a.C | 8 +- > .../g++.dg/cpp0x/constexpr-delete2.C | 5 +- > gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C | 2 +- > gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C | 1 + > .../g++.dg/cpp0x/constexpr-recursion.C | 6 +- > gcc/testsuite/g++.dg/cpp0x/overflow1.C | 2 +- > gcc/testsuite/g++.dg/cpp1y/constexpr-89285.C | 5 +- > gcc/testsuite/g++.dg/cpp1y/constexpr-89481.C | 3 +- > .../g++.dg/cpp1y/constexpr-lifetime1.C | 14 ++ > .../g++.dg/cpp1y/constexpr-lifetime2.C | 20 +++ > .../g++.dg/cpp1y/constexpr-lifetime3.C | 13 ++ > .../g++.dg/cpp1y/constexpr-lifetime4.C | 11 ++ > .../g++.dg/cpp1y/constexpr-lifetime5.C | 11 ++ > .../g++.dg/cpp1y/constexpr-tracking-const14.C | 3 +- > .../g++.dg/cpp1y/constexpr-tracking-const16.C | 3 +- > .../g++.dg/cpp1y/constexpr-tracking-const18.C | 4 +- > .../g++.dg/cpp1y/constexpr-tracking-const19.C | 4 +- > .../g++.dg/cpp1y/constexpr-tracking-const21.C | 4 +- > .../g++.dg/cpp1y/constexpr-tracking-const22.C | 4 +- > .../g++.dg/cpp1y/constexpr-tracking-const3.C | 3 +- > .../g++.dg/cpp1y/constexpr-tracking-const4.C | 3 +- > .../g++.dg/cpp1y/constexpr-tracking-const7.C | 3 +- > gcc/testsuite/g++.dg/cpp1y/constexpr-union5.C | 4 +- > gcc/testsuite/g++.dg/cpp1y/pr68180.C | 4 +- > .../g++.dg/cpp1z/constexpr-lambda6.C | 4 +- > .../g++.dg/cpp1z/constexpr-lambda8.C | 5 +- > gcc/testsuite/g++.dg/cpp2a/bit-cast11.C | 10 +- > gcc/testsuite/g++.dg/cpp2a/bit-cast12.C | 10 +- > gcc/testsuite/g++.dg/cpp2a/bit-cast14.C | 14 +- > gcc/testsuite/g++.dg/cpp2a/constexpr-98122.C | 4 +- > .../g++.dg/cpp2a/constexpr-dynamic17.C | 5 +- > gcc/testsuite/g++.dg/cpp2a/constexpr-init1.C | 5 +- > gcc/testsuite/g++.dg/cpp2a/constexpr-new12.C | 6 +- > gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C | 10 +- > gcc/testsuite/g++.dg/cpp2a/constinit10.C | 5 +- > .../g++.dg/cpp2a/is-corresponding-member4.C | 4 +- > gcc/testsuite/g++.dg/ext/constexpr-vla2.C | 4 +- > gcc/testsuite/g++.dg/ext/constexpr-vla3.C | 4 +- > gcc/testsuite/g++.dg/ubsan/pr63956.C | 23 +-- > .../g++.dg/warn/Wreturn-local-addr-6.C | 3 - > .../25_algorithms/equal/constexpr_neg.cc | 7 +- > .../testsuite/26_numerics/gcd/105844.cc | 10 +- > .../testsuite/26_numerics/lcm/105844.cc | 14 +- > 48 files changed, 330 insertions(+), 143 deletions(-) > create mode 100644 gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime1.C > create mode 100644 gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime2.C > create mode 100644 gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime3.C > create mode 100644 gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime4.C > create mode 100644 gcc/testsuite/g++.dg/cpp1y/constexpr-lifetime5.C > > -- > 2.41.0 > >