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.

Reply via email to