From 73bf7b42b629d4f10a600bed8d68b46ec59c9bcc Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 5 Mar 2009 22:45:59 +0000 Subject: fix PR3607 and a fixme, by checking bitfield constraints more consistently. llvm-svn: 66210 --- clang/lib/Sema/SemaDeclCXX.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'clang/lib/Sema/SemaDeclCXX.cpp') diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 3e8ee5ed1f7..0e5adc46a2d 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -547,11 +547,15 @@ Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D, Decl *Member; bool InvalidDecl = false; - if (isInstField) - Member = static_cast(ActOnField(S, cast(CurContext), - Loc, D, BitWidth)); - else + if (isInstField) { + FieldDecl *FD = + HandleField(S, cast(CurContext), Loc, D, BitWidth); + // Refresh our notion of bitwidth. + BitWidth = FD->getBitWidth(); + Member = FD; + } else { Member = static_cast(ActOnDeclarator(S, D, LastInGroup)); + } if (!Member) return LastInGroup; -- cgit v1.2.3