summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-03-05 22:45:59 +0000
committerChris Lattner <sabre@nondot.org>2009-03-05 22:45:59 +0000
commit73bf7b42b629d4f10a600bed8d68b46ec59c9bcc (patch)
tree390886a710090b2a061656f811d44f026edd65a5 /clang/lib/Sema/SemaDeclCXX.cpp
parentc559f3f17538aee3138b7e29646f7497b45ffef7 (diff)
downloadbcm5719-llvm-73bf7b42b629d4f10a600bed8d68b46ec59c9bcc.tar.gz
bcm5719-llvm-73bf7b42b629d4f10a600bed8d68b46ec59c9bcc.zip
fix PR3607 and a fixme, by checking bitfield constraints
more consistently. llvm-svn: 66210
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp12
1 files changed, 8 insertions, 4 deletions
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<Decl*>(ActOnField(S, cast<CXXRecordDecl>(CurContext),
- Loc, D, BitWidth));
- else
+ if (isInstField) {
+ FieldDecl *FD =
+ HandleField(S, cast<CXXRecordDecl>(CurContext), Loc, D, BitWidth);
+ // Refresh our notion of bitwidth.
+ BitWidth = FD->getBitWidth();
+ Member = FD;
+ } else {
Member = static_cast<Decl*>(ActOnDeclarator(S, D, LastInGroup));
+ }
if (!Member) return LastInGroup;
OpenPOWER on IntegriCloud