[cfe-commits] r101384 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaDecl.cpp test/Sema/bitfield.c test/SemaObjC/class-bitfield.m

Anders Carlsson andersca at mac.com
Thu Apr 15 11:47:33 PDT 2010


Author: andersca
Date: Thu Apr 15 13:47:32 2010
New Revision: 101384

URL: http://llvm.org/viewvc/llvm-project?rev=101384&view=rev
Log:
Improve the bit-field too wide error message.

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

Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=101384&r1=101383&r2=101384&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Thu Apr 15 13:47:32 2010
@@ -1666,9 +1666,9 @@
   "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;

Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=101384&r1=101383&r2=101384&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Thu Apr 15 13:47:32 2010
@@ -5373,9 +5373,9 @@
     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;
     }
   }
 

Modified: cfe/trunk/test/Sema/bitfield.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/bitfield.c?rev=101384&r1=101383&r2=101384&view=diff
==============================================================================
--- cfe/trunk/test/Sema/bitfield.c (original)
+++ cfe/trunk/test/Sema/bitfield.c Thu Apr 15 13:47:32 2010
@@ -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); 
@@ -21,7 +21,7 @@
   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'}}
 };

Modified: cfe/trunk/test/SemaObjC/class-bitfield.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/class-bitfield.m?rev=101384&r1=101383&r2=101384&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/class-bitfield.m (original)
+++ cfe/trunk/test/SemaObjC/class-bitfield.m Thu Apr 15 13:47:32 2010
@@ -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); 





More information about the cfe-commits mailing list