summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-27 21:26:25 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-27 21:26:25 +0000
commite97d2125b72beaac4d28f38a13114b2330d1bc6b (patch)
tree29e991f81e1c25904d490958f6de0701b19fd4a6 /gcc/testsuite
parent70b178b2d846a0bc8231fcdad3b5b9e175f5e676 (diff)
downloadgcc-e97d2125b72beaac4d28f38a13114b2330d1bc6b.tar.gz
PR c++/43856
* name-lookup.c (qualify_lookup): Disqualify lambda op(). * class.c (current_nonlambda_class_type): New fn. * semantics.c (nonlambda_method_basetype): New. * cp-tree.h: Declare them. * tree.c (maybe_dummy_object): Handle implicit 'this' capture. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158807 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C16
2 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0746e595468..37f201ab2e2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2010-04-27 Jason Merrill <jason@redhat.com>
+ PR c++/43856
+ * g++.dg/cpp0x/lambda/lambda-this2.C: New.
+
PR c++/43875
* g++.dg/cpp0x/lambda/lambda-deduce2.C: New.
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C
new file mode 100644
index 00000000000..ce4bda458c8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C
@@ -0,0 +1,16 @@
+// PR c++/43856
+// Test for implicit 'this' capture via rewriting.
+// { dg-options "-std=c++0x" }
+
+struct S1 {
+ int operator()(int);
+ int i;
+ void g();
+ void f() {
+ [=]() {
+ i;
+ g();
+ operator()(42);
+ };
+ }
+};