Skip to content
Snippets Groups Projects
Commit 2d01f2c4 authored by Francois Pichet's avatar Francois Pichet
Browse files

As per John McCall comment:

Follow up to r154924: check that we are in a static CMethodDecl to enable the Microsoft bug emulation regarding access to protected member during PTM creation. Not just any static function.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154982 91177308-0d34-0410-b5e6-96231b3b80d8
parent 3acf7649
No related branches found
No related tags found
No related merge requests found
......@@ -781,10 +781,10 @@ static AccessResult HasAccess(Sema &S,
// Emulate a MSVC bug where the creation of pointer-to-member
// to protected member of base class is allowed but only from
// a static function.
if (S.getLangOpts().MicrosoftMode && !EC.Functions.empty() &&
EC.Functions.front()->getStorageClass() == SC_Static)
return AR_accessible;
// a static function member functions.
if (S.getLangOpts().MicrosoftMode && !EC.Functions.empty())
if (CXXMethodDecl* MD = dyn_cast<CXXMethodDecl>(EC.Functions.front()))
if (MD->isStatic()) return AR_accessible;
// Despite the standard's confident wording, there is a case
// where you can have an instance member that's neither in a
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment