[PATCH v2 0/3] c++: Track lifetimes in constant evaluation [PR70331, ...]
Nathaniel Shead
nathanieloshead@gmail.com
Wed Mar 29 02:32:55 GMT 2023
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
More information about the Gcc-patches
mailing list