diff options
-rw-r--r-- | clang/lib/Sema/SemaAccess.cpp | 5 | ||||
-rw-r--r-- | clang/test/SemaCXX/access.cpp | 35 |
2 files changed, 0 insertions, 40 deletions
diff --git a/clang/lib/Sema/SemaAccess.cpp b/clang/lib/Sema/SemaAccess.cpp index d2205dd239e..98a918bd7d6 100644 --- a/clang/lib/Sema/SemaAccess.cpp +++ b/clang/lib/Sema/SemaAccess.cpp @@ -1793,11 +1793,6 @@ Sema::AccessResult Sema::CheckAddressOfMemberAccess(Expr *OvlExpr, AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found, /*no instance context*/ QualType()); - - if (IsAccessible(*this, EffectiveContext(CurScope->getEntity()), Entity) == - ::AR_accessible) - return AR_accessible; - Entity.setDiag(diag::err_access) << Ovl->getSourceRange(); diff --git a/clang/test/SemaCXX/access.cpp b/clang/test/SemaCXX/access.cpp index 0707ec25be5..29a58a1388a 100644 --- a/clang/test/SemaCXX/access.cpp +++ b/clang/test/SemaCXX/access.cpp @@ -169,38 +169,3 @@ namespace ThisLambdaIsNotMyFriend { } void bar() { foo<void>(); } } - -namespace OverloadedMemberFunctionPointer { - template<class T, void(T::*pMethod)()> - void func0() {} - - template<class T, void(T::*pMethod)(int)> - void func1() {} - - template<class T> - void func2(void(*fn)()) {} // expected-note 2 {{candidate function not viable: no overload of 'func}} - - class C { - private: - friend void friendFunc(); - void overloadedMethod(); - protected: - void overloadedMethod(int); - public: - void overloadedMethod(int, int); - void method() { - func2<int>(&func0<C, &C::overloadedMethod>); - func2<int>(&func1<C, &C::overloadedMethod>); - } - }; - - void friendFunc() { - func2<int>(&func0<C, &C::overloadedMethod>); - func2<int>(&func1<C, &C::overloadedMethod>); - } - - void nonFriendFunc() { - func2<int>(&func0<C, &C::overloadedMethod>); // expected-error {{no matching function for call to 'func2'}} - func2<int>(&func1<C, &C::overloadedMethod>); // expected-error {{no matching function for call to 'func2'}} - } -} |