PR c++/25950 (DR 391)
authorJason Merrill <jason@redhat.com>
Wed, 24 Oct 2007 03:45:37 +0000 (23:45 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 24 Oct 2007 03:45:37 +0000 (23:45 -0400)
commit6f4fd5362d14e6ca794b629befd60b7b3aa56a42
treefbca0e01a3c67e9b7a3d7a0dea6fb8da66a10c03
parentd72702e2cbf5f92f41b442c0fec1e42e65730dc4
PR c++/25950 (DR 391)

        PR c++/25950 (DR 391)
        * call.c (struct conversion): Remove check_copy_constructor_p.
        (reference_binding): Always bind a reference directly to a
        compatible class rvalue.  Pass down LOOKUP_NO_TEMP_BIND during
        temporary creation.
        (check_constructor_callable): Remove.
        (convert_like_real): Don't call it.
        (initialize_reference): Don't call check_constructor_callable.
        (standard_conversion): Check LOOKUP_NO_CONVERSION instead of
        LOOKUP_CONSTRUCTOR_CALLABLE.  Don't require a temporary for base
        conversions if LOOKUP_NO_TEMP_BIND.
        (implicit_conversion): Pass through LOOKUP_NO_TEMP_BIND.
        (build_user_type_conversion_1): Pass through LOOKUP_NO_TEMP_BIND for
        second conversion.
        * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): Remove.

From-SVN: r129596
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/testsuite/g++.dg/init/copy7.C [deleted file]
gcc/testsuite/g++.dg/overload/reftemp1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/overload/reftemp2.C [new file with mode: 0644]