diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2010-07-27 20:51:02 +0000 | 
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2010-07-27 20:51:02 +0000 | 
| commit | 7530049b16c0fc6ef8b715d380e8fe5b570601f8 (patch) | |
| tree | 8820ff02aad4aff3604c137598798e0e553b85fa /clang/lib/Sema/SemaExpr.cpp | |
| parent | 4f6e73b168ffdc6f338f0221628a519ea50d4249 (diff) | |
| download | bcm5719-llvm-7530049b16c0fc6ef8b715d380e8fe5b570601f8.tar.gz bcm5719-llvm-7530049b16c0fc6ef8b715d380e8fe5b570601f8.zip | |
Fix a minor crash bug with constructs like Obj.Class::ENUM_VALUE.
llvm-svn: 109537
Diffstat (limited to 'clang/lib/Sema/SemaExpr.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 4183ea3394d..fa2b65b2deb 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -2628,12 +2628,12 @@ bool Sema::CheckQualifiedMemberReference(Expr *BaseExpr,        return false;      // Note that we use the DC of the decl, not the underlying decl. -    CXXRecordDecl *RecordD = cast<CXXRecordDecl>((*I)->getDeclContext()); -    while (RecordD->isAnonymousStructOrUnion()) -      RecordD = cast<CXXRecordDecl>(RecordD->getParent()); +    DeclContext *DC = (*I)->getDeclContext(); +    while (DC->isTransparentContext()) +      DC = DC->getParent();      llvm::SmallPtrSet<CXXRecordDecl*,4> MemberRecord; -    MemberRecord.insert(RecordD->getCanonicalDecl()); +    MemberRecord.insert(cast<CXXRecordDecl>(DC)->getCanonicalDecl());      if (!IsProvablyNotDerivedFrom(*this, BaseRecord, MemberRecord))        return false; | 

