diff options
| author | Anders Carlsson <andersca@mac.com> | 2010-03-30 15:39:27 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2010-03-30 15:39:27 +0000 |
| commit | a942dcd92ba5ff8b3bbfd172b9fd396b23a9ea5e (patch) | |
| tree | dcbfc855d1d41cd3e8f65ce6c508baf975970203 /clang/lib/Sema | |
| parent | 0c1dcb083e3e6d178d2c8a8f183d811cb4ed308c (diff) | |
| download | bcm5719-llvm-a942dcd92ba5ff8b3bbfd172b9fd396b23a9ea5e.tar.gz bcm5719-llvm-a942dcd92ba5ff8b3bbfd172b9fd396b23a9ea5e.zip | |
Reduce nesting.
llvm-svn: 99889
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index efd34f93c9c..3509cb5e864 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -1679,25 +1679,25 @@ static void *GetKeyForBase(QualType BaseType) { static void *GetKeyForMember(CXXBaseOrMemberInitializer *Member, bool MemberMaybeAnon = false) { + if (!Member->isMemberInitializer()) + return GetKeyForBase(QualType(Member->getBaseClass(), 0)); + // For fields injected into the class via declaration of an anonymous union, // use its anonymous union class declaration as the unique key. - if (Member->isMemberInitializer()) { - FieldDecl *Field = Member->getMember(); - - // After SetBaseOrMemberInitializers call, Field is the anonymous union - // data member of the class. Data member used in the initializer list is - // in AnonUnionMember field. - if (MemberMaybeAnon && Field->isAnonymousStructOrUnion()) - Field = Member->getAnonUnionMember(); - if (Field->getDeclContext()->isRecord()) { - RecordDecl *RD = cast<RecordDecl>(Field->getDeclContext()); - if (RD->isAnonymousStructOrUnion()) - return static_cast<void *>(RD); - } - return static_cast<void *>(Field); + FieldDecl *Field = Member->getMember(); + + // After SetBaseOrMemberInitializers call, Field is the anonymous union + // data member of the class. Data member used in the initializer list is + // in AnonUnionMember field. + if (MemberMaybeAnon && Field->isAnonymousStructOrUnion()) + Field = Member->getAnonUnionMember(); + if (Field->getDeclContext()->isRecord()) { + RecordDecl *RD = cast<RecordDecl>(Field->getDeclContext()); + if (RD->isAnonymousStructOrUnion()) + return static_cast<void *>(RD); } - return GetKeyForBase(QualType(Member->getBaseClass(), 0)); + return static_cast<void *>(Field); } /// ActOnMemInitializers - Handle the member initializers for a constructor. |

