[Bug c++/25950] [DR 391] Reference binding and explicit copy constructors

jason at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Oct 24 03:46:00 GMT 2007



------- Comment #27 from jason at gcc dot gnu dot org  2007-10-24 03:45 -------
Subject: Bug 25950

Author: jason
Date: Wed Oct 24 03:45:37 2007
New Revision: 129596

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129596
Log:
        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.

Added:
    trunk/gcc/testsuite/g++.dg/overload/reftemp1.C
    trunk/gcc/testsuite/g++.dg/overload/reftemp2.C
Removed:
    trunk/gcc/testsuite/g++.dg/init/copy7.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/call.c
    trunk/gcc/cp/cp-tree.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25950



More information about the Gcc-bugs mailing list