From c75d6ccf16170af42d31508a026b42382ab8f118 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Thu, 15 Apr 2010 18:47:32 +0000 Subject: [PATCH] Improve the bit-field too wide error message. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101384 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticSemaKinds.td | 4 ++-- lib/Sema/SemaDecl.cpp | 4 ++-- test/Sema/bitfield.c | 4 ++-- test/SemaObjC/class-bitfield.m | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index 7b1b2f496a..cc38077e70 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -1666,9 +1666,9 @@ def err_anon_bitfield_has_negative_width : Error< "anonymous bit-field has negative width (%0)">; def err_bitfield_has_zero_width : Error<"named bit-field %0 has zero width">; def err_bitfield_width_exceeds_type_size : Error< - "size of bit-field %0 exceeds size of its type (%1 bits)">; + "size of bit-field %0 (%1 bits) exceeds size of its type (%2 bits)">; def err_anon_bitfield_width_exceeds_type_size : Error< - "size of anonymous bit-field exceeds size of its type (%0 bits)">; + "size of anonymous bit-field (%0 bits) exceeds size of its type (%1 bits)">; def warn_missing_braces : Warning< "suggest braces around initialization of subobject">, InGroup>, DefaultIgnore; diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 42d18cd27a..2761f7e443 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -5373,9 +5373,9 @@ bool Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, if (Value.getZExtValue() > TypeSize) { if (FieldName) return Diag(FieldLoc, diag::err_bitfield_width_exceeds_type_size) - << FieldName << (unsigned)TypeSize; + << FieldName << (unsigned)Value.getZExtValue() << (unsigned)TypeSize; return Diag(FieldLoc, diag::err_anon_bitfield_width_exceeds_type_size) - << (unsigned)TypeSize; + << (unsigned)Value.getZExtValue() << (unsigned)TypeSize; } } diff --git a/test/Sema/bitfield.c b/test/Sema/bitfield.c index 6f129daceb..5bb194b1f3 100644 --- a/test/Sema/bitfield.c +++ b/test/Sema/bitfield.c @@ -5,7 +5,7 @@ struct a { int a : -1; // expected-error{{bit-field 'a' has negative width}} // rdar://6081627 - int b : 33; // expected-error{{size of bit-field 'b' exceeds size of its type (32 bits)}} + int b : 33; // expected-error{{size of bit-field 'b' (33 bits) exceeds size of its type (32 bits)}} int c : (1 + 0.25); // expected-error{{expression is not an integer constant expression}} int d : (int)(1 + 0.25); @@ -21,7 +21,7 @@ struct a { int g : (_Bool)1; // PR4017 - char : 10; // expected-error {{size of anonymous bit-field exceeds size of its type (8 bits)}} + char : 10; // expected-error {{size of anonymous bit-field (10 bits) exceeds size of its type (8 bits)}} unsigned : -2; // expected-error {{anonymous bit-field has negative width (-2)}} float : 12; // expected-error {{anonymous bit-field has non-integral type 'float'}} }; diff --git a/test/SemaObjC/class-bitfield.m b/test/SemaObjC/class-bitfield.m index d152562242..c0393c2287 100644 --- a/test/SemaObjC/class-bitfield.m +++ b/test/SemaObjC/class-bitfield.m @@ -5,7 +5,7 @@ int a : -1; // expected-error{{bit-field 'a' has negative width}} // rdar://6081627 - int b : 33; // expected-error{{size of bit-field 'b' exceeds size of its type (32 bits)}} + int b : 33; // expected-error{{size of bit-field 'b' (33 bits) exceeds size of its type (32 bits)}} int c : (1 + 0.25); // expected-error{{expression is not an integer constant expression}} int d : (int)(1 + 0.25); -- 2.40.0