aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/tree.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-04-11 18:00:06 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-04-11 18:00:06 -0400
commitb24290fb5bfba313dc7143aa29a7b161fd501997 (patch)
treedd92eb9594d145c9a1cbd548aadb98292d461fc5 /gcc/cp/tree.c
parent1e6d1da02d97cb863bd000c90d0309ba8f630955 (diff)
downloadgcc-b24290fb5bfba313dc7143aa29a7b161fd501997.zip
gcc-b24290fb5bfba313dc7143aa29a7b161fd501997.tar.gz
gcc-b24290fb5bfba313dc7143aa29a7b161fd501997.tar.bz2
PR c++/48457, Core 1238
PR c++/48457, Core 1238 * call.c (reference_binding): Allow rvalue reference to bind to function lvalue. * tree.c (lvalue_kind): Functions are always lvalues. From-SVN: r172282
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r--gcc/cp/tree.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 3594ae4..d6b6197 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -73,7 +73,9 @@ lvalue_kind (const_tree ref)
if (TYPE_REF_IS_RVALUE (TREE_TYPE (ref))
&& TREE_CODE (ref) != PARM_DECL
&& TREE_CODE (ref) != VAR_DECL
- && TREE_CODE (ref) != COMPONENT_REF)
+ && TREE_CODE (ref) != COMPONENT_REF
+ /* Functions are always lvalues. */
+ && TREE_CODE (TREE_TYPE (TREE_TYPE (ref))) != FUNCTION_TYPE)
return clk_rvalueref;
/* lvalue references and named rvalue references are lvalues. */