Message ID | 20230329023258.13487-1-nathanieloshead@gmail.com |
---|---|
Headers | show |
Series | c++: Track lifetimes in constant evaluation [PR70331, ...] | expand |
Just pinging in case this fix has fallen through the cracks. https://gcc.gnu.org/pipermail/gcc-patches/2023-March/614811.html On Wed, Mar 29, 2023 at 1:33 PM Nathaniel Shead <nathanieloshead@gmail.com> wrote: > > This is an update of the patch series at > https://gcc.gnu.org/pipermail/gcc-patches/2023-March/614759.html > > The main change is modifying the first patch to store the "expired" flag > in the C++-specific lang_decl_base struct instead of tree_decl_common. > The second and third patches to improve diagnostic locations are > otherwise unchanged. > > Bootstrapped and regression tested on x86_64 linux. > > Nathaniel > > --- > > 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 constexpr evaluation > > gcc/cp/constexpr.cc | 152 ++++++++++++------ > gcc/cp/cp-tree.h | 10 +- > gcc/cp/module.cc | 2 + > 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-diag3.C | 2 +- > gcc/testsuite/g++.dg/cpp0x/constexpr-ice20.C | 2 +- > 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 ++ > gcc/testsuite/g++.dg/cpp1y/constexpr-union5.C | 4 +- > gcc/testsuite/g++.dg/cpp1y/pr68180.C | 4 +- > .../g++.dg/cpp1z/constexpr-lambda6.C | 4 +- > 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/ext/constexpr-vla2.C | 4 +- > gcc/testsuite/g++.dg/ext/constexpr-vla3.C | 4 +- > gcc/testsuite/g++.dg/ubsan/pr63956.C | 4 +- > .../g++.dg/warn/Wreturn-local-addr-6.C | 3 - > .../25_algorithms/equal/constexpr_neg.cc | 7 +- > 30 files changed, 246 insertions(+), 112 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.34.1 >