https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92505

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:7107ea6fb933f1e928593c7e92edfd64ccf0df63

commit r13-2701-g7107ea6fb933f1e928593c7e92edfd64ccf0df63
Author: Patrick Palka <ppa...@redhat.com>
Date:   Fri Sep 16 11:10:43 2022 -0400

    c++: 'mutable' member within constexpr [PR92505]

    This patch permits accessing 'mutable' members of local objects during
    constexpr evaluation, while continuing to reject it for global objects
    (as in the last line of cpp0x/constexpr-mutable1.C).  To distinguish
    between the two cases, it looks like it suffices to just check
    CONSTRUCTOR_MUTABLE_POSION in cxx_eval_component_reference before
    deciding to reject a DECL_MUTABLE_P member access.

            PR c++/92505

    gcc/cp/ChangeLog:

            * constexpr.cc (cxx_eval_component_reference): Check non_constant_p
            sooner.  In C++14 or later, reject a DECL_MUTABLE_P member access
            only if CONSTRUCTOR_MUTABLE_POISION is also set.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp0x/constexpr-mutable3.C: New test.
            * g++.dg/cpp1y/constexpr-mutable1.C: New test.

Reply via email to