]> granicus.if.org Git - clang/commitdiff
Improve the bit-field too wide error message.
authorAnders Carlsson <andersca@mac.com>
Thu, 15 Apr 2010 18:47:32 +0000 (18:47 +0000)
committerAnders Carlsson <andersca@mac.com>
Thu, 15 Apr 2010 18:47:32 +0000 (18:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101384 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaDecl.cpp
test/Sema/bitfield.c
test/SemaObjC/class-bitfield.m

index 7b1b2f496ae7e8d1a16350da44ed1eed62de5fc5..cc38077e70f8e9482c1c442dd435ceb1d41a45c4 100644 (file)
@@ -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<DiagGroup<"missing-braces">>, DefaultIgnore;
index 42d18cd27aa52d1c7404a0e3c702dcf9c0971093..2761f7e4437bb7255ab558e5750e886343bf0e24 100644 (file)
@@ -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;
     }
   }
 
index 6f129daceba58e5fe4e206cd570789fd46bb2c37..5bb194b1f3a9bd5f53ce13d92c71a995302ca530 100644 (file)
@@ -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'}}
 };
index d1525622429e43da3afb176b65aca05faa8b85f0..c0393c2287c1e6ea5ae438220d6c498f8eb56c9c 100644 (file)
@@ -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);