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

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

https://gcc.gnu.org/g:67f742536cbb60d5f8b7bba2cac0a141191e29af

commit r10-10727-g67f742536cbb60d5f8b7bba2cac0a141191e29af
Author: Jason Merrill <ja...@redhat.com>
Date:   Mon May 31 12:36:25 2021 -0400

    c++: missing dtor with -fno-elide-constructors [PR100838]

    tf_no_cleanup only applies to the outermost TARGET_EXPR, and we already
    clear it for nested calls in build_over_call, but in this case both
    constructor calls came from convert_like, so we need to clear it in the
    recursive call as well.  This revealed that we were adding an extra
    ck_rvalue in direct-initialization cases where it was wrong.

            PR c++/100838
            PR c++/105265

    gcc/cp/ChangeLog:

            * call.c (convert_like_internal): Clear tf_no_cleanup when
            recursing.
            (build_user_type_conversion_1): Only add ck_rvalue if
            LOOKUP_ONLYCONVERTING.

    gcc/testsuite/ChangeLog:

            * g++.dg/init/no-elide2.C: New test.
            * g++.dg/cpp0x/initlist-new6.C: New test.

Reply via email to