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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:bb2921ab84dba014f24be06663636c7fb1361474

commit r13-221-gbb2921ab84dba014f24be06663636c7fb1361474
Author: Jason Merrill <ja...@redhat.com>
Date:   Mon May 9 16:03:35 2022 -0400

    c++: fix arm-eabi crash building libstdc++ [PR105529]

    My recent change to cxx_eval_store_expression asserts that the target and
    value can only end up having different types in the case of an empty base;
    this was crashing arm-eabi compilers because in that ABI [cd]tors
    return *this, and weren't converting it to void* first.

    This also shares the 'return this' code between the three places it occurs.

    Thanks to Marek for the tests.

            PR c++/105529

    gcc/cp/ChangeLog:

            * decl.cc (maybe_return_this): Replace...
            (finish_constructor_body, finish_destructor_body): ...these.
            (finish_function_body): Call it.
            * optimize.cc (build_delete_destructor_body): Call it.
            * cp-tree.h (maybe_return_this): Declare.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp2a/constexpr-dtor13.C: New test.
            * g++.dg/cpp2a/constexpr-dtor14.C: New test.

Reply via email to