https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85125
--- Comment #7 from John McFarlane <john at mcfarlane dot name> --- Confirmed. Thank you! On Mon, 19 Aug 2019 at 15:02, mpolacek at gcc dot gnu.org < gcc-bugzi...@gcc.gnu.org> wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85125 > > Marek Polacek <mpolacek at gcc dot gnu.org> changed: > > What |Removed |Added > > ---------------------------------------------------------------------------- > Status|ASSIGNED |RESOLVED > Resolution|--- |FIXED > > --- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> --- > Done for 10.1 via: > > Author: mpolacek > Date: Mon Aug 19 13:59:13 2019 > New Revision: 274671 > > URL: https://gcc.gnu.org/viewcvs?rev=274671&root=gcc&view=rev > Log: > PR c++/91264 - detect modifying const objects in constexpr. > * constexpr.c (modifying_const_object_error): New function. > (cxx_eval_call_expression): Set TREE_READONLY on a CONSTRUCTOR of > a const-qualified object after it's been fully constructed. > (modifying_const_object_p): New function. > (cxx_eval_store_expression): Detect modifying a const object > during constant expression evaluation. > (cxx_eval_increment_expression): Use a better location when > building > up the store. > (cxx_eval_constant_expression) <case DECL_EXPR>: Mark a constant > object's constructor TREE_READONLY. > > * g++.dg/cpp1y/constexpr-tracking-const1.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const2.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const3.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const4.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const5.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const6.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const7.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const8.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const9.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const10.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const11.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const12.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const13.C: New test. > * g++.dg/cpp1y/constexpr-tracking-const14.C: New test. > > Added: > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const1.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const10.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const11.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const12.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const13.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const14.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const2.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const3.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const4.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const5.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const6.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const7.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const8.C > trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const9.C > Modified: > trunk/gcc/cp/ChangeLog > trunk/gcc/cp/constexpr.c > trunk/gcc/testsuite/ChangeLog > > -- > You are receiving this mail because: > You are on the CC list for the bug. > You reported the bug.