]> granicus.if.org Git - clang/commitdiff
Reduce nesting.
authorAnders Carlsson <andersca@mac.com>
Tue, 30 Mar 2010 15:39:27 +0000 (15:39 +0000)
committerAnders Carlsson <andersca@mac.com>
Tue, 30 Mar 2010 15:39:27 +0000 (15:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99889 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDeclCXX.cpp

index efd34f93c9cd6e2d6db46a138d82c665f8bacc66..3509cb5e8643d2001f4a9e830afcfd0f2695b1e5 100644 (file)
@@ -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.