summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-03-05 23:03:49 +0000
committerChris Lattner <sabre@nondot.org>2009-03-05 23:03:49 +0000
commit97e277e55e727934f3e68bfab7066b7ab86112a4 (patch)
treec95b89c943489d1d359253bb0e28c739a83b96f3 /clang/lib/Sema/SemaDeclCXX.cpp
parentd26760aecbb2629eeb6bbcb869db086ca39c500f (diff)
downloadbcm5719-llvm-97e277e55e727934f3e68bfab7066b7ab86112a4.tar.gz
bcm5719-llvm-97e277e55e727934f3e68bfab7066b7ab86112a4.zip
more minor simplifications.
llvm-svn: 66214
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 178853e5ccf..e2a8bb4347e 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -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++
OpenPOWER on IntegriCloud