PR c++/49267
* call.c (reference_binding): Don't set is_lvalue for an rvalue
reference rfrom.
From-SVN: r178521
2011-09-04 Jason Merrill <jason@redhat.com>
PR c++/49267
+ * call.c (reference_binding): Don't set is_lvalue for an rvalue
+ reference rfrom.
+
+ PR c++/49267
PR c++/49458
DR 1328
* call.c (reference_binding): Set rvaluedness_matches_p properly
if (TREE_CODE (from) == REFERENCE_TYPE)
{
- /* Anything with reference type is an lvalue. */
- is_lvalue = clk_ordinary;
from = TREE_TYPE (from);
+ if (!TYPE_REF_IS_RVALUE (rfrom)
+ || TREE_CODE (from) == FUNCTION_TYPE)
+ is_lvalue = clk_ordinary;
}
if (expr && BRACE_ENCLOSED_INITIALIZER_P (expr))