aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-06-29 13:15:06 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-06-29 13:15:06 -0400
commit40d55020a382cc1836911b9702f6880b49c1d955 (patch)
tree24938062efd7fb502da82065526a9b3c36fe7213 /gcc/cp/pt.c
parentde95483d1e787c73bf1c84e47254bdab4f839762 (diff)
downloadgcc-40d55020a382cc1836911b9702f6880b49c1d955.zip
gcc-40d55020a382cc1836911b9702f6880b49c1d955.tar.gz
gcc-40d55020a382cc1836911b9702f6880b49c1d955.tar.bz2
re PR c++/49554 ([C++0x] lambda capture causes "cannot call member function ... without object")
PR c++/49554 * semantics.c (lambda_proxy_type): New. (build_capture_proxy): Use it. * cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New. * pt.c (tsubst) [DECLTYPE_TYPE]: Use them. From-SVN: r175657
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index b3dd85f..d1d8336 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -11108,6 +11108,8 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
type = lambda_capture_field_type (type);
else if (DECLTYPE_FOR_LAMBDA_RETURN (t))
type = lambda_return_type (type);
+ else if (DECLTYPE_FOR_LAMBDA_PROXY (t))
+ type = lambda_proxy_type (type);
else
type = finish_decltype_type
(type, DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (t), complain);