diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-01-17 22:29:43 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-01-17 22:29:43 +0000 |
commit | 59d26d2e675f7a924f5e92ef030aaa3b70995924 (patch) | |
tree | a5572f67e7478f0675ab44f0fd6e0ad41b50a109 /clang/lib/Sema/SemaExprMember.cpp | |
parent | 5d05ed1d1725f801b0d11ce2b2cc712484085cb0 (diff) | |
download | bcm5719-llvm-59d26d2e675f7a924f5e92ef030aaa3b70995924.tar.gz bcm5719-llvm-59d26d2e675f7a924f5e92ef030aaa3b70995924.zip |
PR12788: Remove unnecessary and incorrect special case for indirect fields.
This caused us to skip a step that was essential for correct access control.
llvm-svn: 199522
Diffstat (limited to 'clang/lib/Sema/SemaExprMember.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprMember.cpp | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp index 1a08c5b6bea..dea44678442 100644 --- a/clang/lib/Sema/SemaExprMember.cpp +++ b/clang/lib/Sema/SemaExprMember.cpp @@ -1752,14 +1752,7 @@ Sema::BuildImplicitMemberExpr(const CXXScopeSpec &SS, assert(!R.empty() && !R.isAmbiguous()); SourceLocation loc = R.getNameLoc(); - - // We may have found a field within an anonymous union or struct - // (C++ [class.union]). - // FIXME: template-ids inside anonymous structs? - if (IndirectFieldDecl *FD = R.getAsSingle<IndirectFieldDecl>()) - return BuildAnonymousStructUnionMemberReference(SS, R.getNameLoc(), FD, - R.begin().getPair()); - + // If this is known to be an instance access, go ahead and build an // implicit 'this' expression now. // 'this' expression now. |