]> granicus.if.org Git - clang/commitdiff
more minor simplifications.
authorChris Lattner <sabre@nondot.org>
Thu, 5 Mar 2009 23:03:49 +0000 (23:03 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 5 Mar 2009 23:03:49 +0000 (23:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66214 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDeclCXX.cpp

index 178853e5ccf89039a6613b9dacd3d9262f43b2e1..e2a8bb4347e9bd95adc8d558843c3480098fed95 100644 (file)
@@ -546,13 +546,14 @@ Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D,
 
   Decl *Member;
   if (isInstField) {
-    FieldDecl *FD = 
-      HandleField(S, cast<CXXRecordDecl>(CurContext), Loc, D, BitWidth);
-    // Refresh our notion of bitwidth.
-    BitWidth = FD->getBitWidth();
-    Member = FD;
+    Member = HandleField(S, cast<CXXRecordDecl>(CurContext), Loc, D, BitWidth);
+    assert(Member && "HandleField never returns null");
   } else {
     Member = static_cast<Decl*>(ActOnDeclarator(S, D, LastInGroup));
+    if (!Member) {
+      if (BitWidth) DeleteExpr(BitWidth);
+      return LastInGroup;
+    }
 
     // Non-instance-fields can't have a bitfield.
     if (BitWidth) {
@@ -580,8 +581,6 @@ Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D,
     }
   }
 
-  if (!Member) return LastInGroup;
-
   assert((Name || isInstField) && "No identifier for non-field ?");
 
   // set/getAccess is not part of Decl's interface to avoid bloating it with C++