diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-03-16 18:19:21 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-03-16 18:19:21 +0000 |
| commit | 6caa9dd693cbc1a30d8fc9bf4cf555c71ab6f9e1 (patch) | |
| tree | 35691cc3d9030fc7913ea397fa6f7da2412a1074 /clang | |
| parent | bd1a1d2fa686c1c6fd25de1cef92e7cc4a7e0709 (diff) | |
| download | bcm5719-llvm-6caa9dd693cbc1a30d8fc9bf4cf555c71ab6f9e1.tar.gz bcm5719-llvm-6caa9dd693cbc1a30d8fc9bf4cf555c71ab6f9e1.zip | |
Check signedness of bitfield sizes.
llvm-svn: 67045
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 2 | ||||
| -rw-r--r-- | clang/test/Sema/bitfield.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 51b2b853a8b..d34a8e71110 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -3363,7 +3363,7 @@ bool Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, if (Value == 0 && FieldName) return Diag(FieldLoc, diag::err_bitfield_has_zero_width) << FieldName; - if (Value.isNegative()) + if (Value.isSigned() && Value.isNegative()) return Diag(FieldLoc, diag::err_bitfield_has_negative_width) << FieldName << Value.toString(10); diff --git a/clang/test/Sema/bitfield.c b/clang/test/Sema/bitfield.c index 7a70fe8de83..0a658c5c33e 100644 --- a/clang/test/Sema/bitfield.c +++ b/clang/test/Sema/bitfield.c @@ -17,5 +17,7 @@ struct a { // PR3607 enum e0 f : 1; // expected-error {{field has incomplete type 'enum e0'}} + + int g : (_Bool)1; }; |

