aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2013-03-28 14:20:37 -0400
committerJason Merrill <jason@gcc.gnu.org>2013-03-28 14:20:37 -0400
commitc561e95201474d7951cbd7a09195b7f3b412d1e9 (patch)
tree1d3f14b22fb360cb249d5f55ea77042cf3d48cc3
parent477e1843fd13958fbecafeb540a8876146a61e3a (diff)
downloadgcc-c561e95201474d7951cbd7a09195b7f3b412d1e9.zip
gcc-c561e95201474d7951cbd7a09195b7f3b412d1e9.tar.gz
gcc-c561e95201474d7951cbd7a09195b7f3b412d1e9.tar.bz2
name-lookup.c (pushdecl_maybe_friend_1): Use nonlambda_method_basetype and current_nonlambda_class_type.
* name-lookup.c (pushdecl_maybe_friend_1): Use nonlambda_method_basetype and current_nonlambda_class_type. From-SVN: r197210
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/name-lookup.c4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow2.C10
3 files changed, 15 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 164c797..b204153 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
2013-03-28 Jason Merrill <jason@redhat.com>
+ * name-lookup.c (pushdecl_maybe_friend_1): Use
+ nonlambda_method_basetype and current_nonlambda_class_type.
+
PR c++/56728
* semantics.c (potential_constant_expression_1) [NOP_EXPR]: Reject
conversion from integer to pointer.
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 0a0915a..e2ef75b 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -1163,8 +1163,8 @@ pushdecl_maybe_friend_1 (tree x, bool is_friend)
{
tree member;
- if (current_class_ptr)
- member = lookup_member (current_class_type,
+ if (nonlambda_method_basetype ())
+ member = lookup_member (current_nonlambda_class_type (),
name,
/*protect=*/0,
/*want_type=*/false,
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow2.C
new file mode 100644
index 0000000..8237a81
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-shadow2.C
@@ -0,0 +1,10 @@
+// { dg-options "-std=c++11 -Wshadow" }
+
+struct A
+{
+ int i;
+ void f()
+ {
+ [=]{ int i; }; // { dg-warning "shadows" }
+ }
+};