[Bug c++/37206] [c++0x] Spurious copy/move requirement for initialization of rvalue reference variable from rvalue initializer.

jason at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Jul 13 06:07:00 GMT 2009



------- Comment #1 from jason at gcc dot gnu dot org  2009-07-13 06:06 -------
Subject: Bug 37206

Author: jason
Date: Mon Jul 13 06:06:27 2009
New Revision: 149543

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149543
Log:
        PR c++/36628
        * tree.c (rvalue): Use lvalue_or_rvalue_with_address_p.

        PR c++/37206
        * cp-tree.h (enum cp_lvalue_kind_flags): Add clk_rvalueref.
        * tree.c (lvalue_p_1): Return it.  Remove
        treat_class_rvalues_as_lvalues parm.
        (real_lvalue_p): Disallow pseudo-lvalues here.
        (lvalue_or_rvalue_with_address_p): New fn.
        * call.c (initialize_reference): Use it instead of real_lvalue_p.

        PR c++/40689
        * init.c (build_new_1): Handle initializer list as array initializer.
        (build_vec_init): Likewise.
        * typeck.c (cp_build_modify_expr): Likewise.
        * typeck2.c (process_init_constructor_array): Error rather than abort
        if too many initializers.


Added:
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype17.C
      - copied unchanged from r149536,
trunk/gcc/testsuite/g++.dg/cpp0x/decltype17.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/initlist20.C
      - copied unchanged from r149534,
trunk/gcc/testsuite/g++.dg/cpp0x/initlist20.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/initlist21.C
      - copied unchanged from r149534,
trunk/gcc/testsuite/g++.dg/cpp0x/initlist21.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/rv10.C
      - copied unchanged from r149534, trunk/gcc/testsuite/g++.dg/cpp0x/rv10.C
Modified:
    branches/gcc-4_4-branch/gcc/cp/ChangeLog
    branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007   (props changed)
    branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008   (props changed)
    branches/gcc-4_4-branch/gcc/cp/call.c
    branches/gcc-4_4-branch/gcc/cp/cp-tree.h
    branches/gcc-4_4-branch/gcc/cp/init.c
    branches/gcc-4_4-branch/gcc/cp/tree.c
    branches/gcc-4_4-branch/gcc/cp/typeck.c
    branches/gcc-4_4-branch/gcc/cp/typeck2.c
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008   (props changed)
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/   (props changed)
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C  
(props changed)
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c   (props
changed)
    branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/  
(props changed)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2007
            ('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/cp/ChangeLog-2008
            ('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/ChangeLog-2008
            ('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/
            ('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
            ('svn:mergeinfo' modified)

Propchange: branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/torture/pr36227.c
            ('svn:mergeinfo' modified)

Propchange:
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/x86_64/abi/callabi/
            ('svn:mergeinfo' modified)


-- 


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



More information about the Gcc-bugs mailing list