Platform: Fedora release 12 (Constantine) Linux cage.lbl.gov 2.6.31.5-127.fc12.x86_64 #1 SMP Sat Nov 7 21:11:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux
URL: svn://gcc.gnu.org/svn/gcc/trunk Revision: 150327 or higher gcc version 4.5.0 20090801 (experimental) (GCC) I'll attach a reproducer. g++ -c -std=c++0x list_sort_bind.cpp ... include/c++/4.5.0/bits/list.tcc:392:3: error: cannot bind 'std::list<int>' lvalue to 'std::list<int>&&' ... It works without -std=c++0x. svn rev. 150326 works, 150327 does not. The critical svn revision was: % svn log -v -c150327 ------------------------------------------------------------------------ r150327 | jason | 2009-07-31 19:26:42 -0700 (Fri, 31 Jul 2009) | 16 lines Changed paths: M /trunk/gcc/cp/ChangeLog M /trunk/gcc/cp/call.c M /trunk/gcc/cp/cp-tree.h M /trunk/gcc/cp/typeck.c M /trunk/gcc/testsuite/ChangeLog M /trunk/gcc/testsuite/g++.dg/cpp0x/initlist22.C M /trunk/gcc/testsuite/g++.dg/cpp0x/named.C M /trunk/gcc/testsuite/g++.dg/cpp0x/overload.C A /trunk/gcc/testsuite/g++.dg/cpp0x/overloadn.C (from /trunk/gcc/testsuite/g++.dg/cpp0x/overload.C:150326) A /trunk/gcc/testsuite/g++.dg/cpp0x/rv-cast.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv1n.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv1p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv2n.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv2p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv3n.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv3p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv4n.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv4p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv5n.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv5p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv6n.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv6p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv7n.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv7p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/rv8p.C M /trunk/gcc/testsuite/g++.dg/cpp0x/template_deduction.C M /trunk/gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C M /trunk/libstdc++-v3/ChangeLog M /trunk/libstdc++-v3/include/bits/move.h M /trunk/libstdc++-v3/include/std/istream M /trunk/libstdc++-v3/include/std/ostream A /trunk/libstdc++-v3/testsuite/27_io/rvalue_streams.cc * call.c (convert_class_to_reference): Binding an lvalue to an rvalue reference is bad. If the user-defined conversion is bad, set bad_p before merging conversions. (maybe_handle_ref_bind): Don't push down bad_p. (reference_binding): Binding an lvalue to an rvalue reference is bad. (convert_like_real): Give a helpful error about binding lvalue to rvalue reference. (reference_related_p): No longer static. * typeck.c (build_typed_address): New. (build_static_cast_1): Add static_cast from lvalue to &&. * cp-tree.h: Adjust. * include/bits/move.h (forward): Implement as in N2835. (move): Implement as in N2831. * include/std/istream (rvalue stream operator>>): New. * include/std/ostream (rvalue stream operator<<): New. ------------------------------------------------------------------------ -- Summary: -std=c++0x reference binding problem Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rwgk at yahoo dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42352