From: Anders Carlsson Date: Tue, 30 Mar 2010 15:39:27 +0000 (+0000) Subject: Reduce nesting. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8f1a24071faabf5796eb7dc1b19be52dc1a2d324;p=clang Reduce nesting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99889 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index efd34f93c9..3509cb5e86 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/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(Field->getDeclContext()); - if (RD->isAnonymousStructOrUnion()) - return static_cast(RD); - } - return static_cast(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(Field->getDeclContext()); + if (RD->isAnonymousStructOrUnion()) + return static_cast(RD); } - return GetKeyForBase(QualType(Member->getBaseClass(), 0)); + return static_cast(Field); } /// ActOnMemInitializers - Handle the member initializers for a constructor.