]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
system.h (CHAR_BITFIELD): Delete.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Tue, 27 Jan 2004 02:33:22 +0000 (02:33 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Tue, 27 Jan 2004 02:33:22 +0000 (02:33 +0000)
* system.h (CHAR_BITFIELD): Delete.
(BOOL_BITFIELD): New.
* c-decl.c (c_scope): Use BOOL_BITFIELD.
* gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
cp:
* cp-tree.h (language_function, lang_type_header): Use
BOOL_BITFIELD.
* name-lookup.h (cp_binding_level): Likewise.

From-SVN: r76686

gcc/ChangeLog
gcc/c-decl.c
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/name-lookup.h
gcc/gengtype-lex.l
gcc/system.h

index 4674b7c8a79e26c227457f4fdbcdd2659ab822df..1e9e491ca3cd72509cd728226eb5a0ca225a3e8f 100644 (file)
@@ -1,3 +1,10 @@
+2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h (CHAR_BITFIELD): Delete.
+       (BOOL_BITFIELD): New.
+       * c-decl.c (c_scope): Use BOOL_BITFIELD.
+       * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
+
 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
index 6dd6bc09272bb581e7f08b525e8a007c3051b428..c0cd2193386e19fe2094c3d74331fa79323bfedc 100644 (file)
@@ -230,21 +230,21 @@ struct c_scope GTY(())
 
   /* True if we are currently filling this scope with parameter
      declarations.  */
-  bool parm_flag : 1;
+  BOOL_BITFIELD parm_flag : 1;
 
   /* True if we already complained about forward parameter decls
      in this scope.  This prevents double warnings on
      foo (int a; int b; ...)  */
-  bool warned_forward_parm_decls : 1;
+  BOOL_BITFIELD warned_forward_parm_decls : 1;
 
   /* True if this is the outermost block scope of a function body.
      This scope contains the parameters, the local variables declared
      in the outermost block, and all the labels (except those in
      nested functions, or declared at block scope with __label__).  */
-  bool function_body : 1;
+  BOOL_BITFIELD function_body : 1;
 
   /* True means make a BLOCK for this scope no matter what.  */
-  bool keep : 1;
+  BOOL_BITFIELD keep : 1;
 };
 
 /* The scope currently in effect.  */
index a6248b68735f69a140a69afcc0d2de605d07128a..001c992ac4da4a6eb1f355903b09a52e25adbe2f 100644 (file)
@@ -1,3 +1,9 @@
+2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cp-tree.h (language_function, lang_type_header): Use
+       BOOL_BITFIELD.
+       * name-lookup.h (cp_binding_level): Likewise.
+
 2004-01-26  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/13663
index f7d3a65087830d37af182fba807779fe5768f438..0614d724be7622f54f1ce8d49d5b1ca22a714595 100644 (file)
@@ -794,7 +794,7 @@ struct language_function GTY(())
   int in_base_initializer;
 
   /* True if this function can throw an exception.  */
-  bool can_throw : 1;
+  BOOL_BITFIELD can_throw : 1;
 
   struct named_label_use_list *x_named_label_uses;
   struct named_label_list *x_named_labels;
@@ -1013,15 +1013,15 @@ enum languages { lang_c, lang_cplusplus, lang_java };
    are put in this structure to save space.  */
 struct lang_type_header GTY(())
 {
-  CHAR_BITFIELD is_lang_type_class : 1;
-
-  CHAR_BITFIELD has_type_conversion : 1;
-  CHAR_BITFIELD has_init_ref : 1;
-  CHAR_BITFIELD has_default_ctor : 1;
-  CHAR_BITFIELD uses_multiple_inheritance : 1;
-  CHAR_BITFIELD const_needs_init : 1;
-  CHAR_BITFIELD ref_needs_init : 1;
-  CHAR_BITFIELD has_const_assign_ref : 1;
+  BOOL_BITFIELD is_lang_type_class : 1;
+
+  BOOL_BITFIELD has_type_conversion : 1;
+  BOOL_BITFIELD has_init_ref : 1;
+  BOOL_BITFIELD has_default_ctor : 1;
+  BOOL_BITFIELD uses_multiple_inheritance : 1;
+  BOOL_BITFIELD const_needs_init : 1;
+  BOOL_BITFIELD ref_needs_init : 1;
+  BOOL_BITFIELD has_const_assign_ref : 1;
 };
 
 /* This structure provides additional information above and beyond
index c986fbc9707138c7f9ebe67e2839dc9b45e414c0..f9764fcfdec107c728b66f34b6487992f27c1048 100644 (file)
@@ -215,7 +215,7 @@ struct cp_binding_level GTY(())
 
     /* True if this scope is an SK_TEMPLATE_SPEC scope.  This field is
        only valid if KIND == SK_TEMPLATE_PARMS.  */
-    bool explicit_spec_p : 1;
+    BOOL_BITFIELD explicit_spec_p : 1;
 
     /* true means make a BLOCK for this level regardless of all else.  */
     unsigned keep : 1;
index 2f52659968598738d4165fa9c953b9644a82334f..2d0462beba5d24d5e8c6330c84b40785f5ce15af 100644 (file)
@@ -47,7 +47,7 @@ update_lineno (const char *l, size_t len)
 
 ID     [[:alpha:]_][[:alnum:]_]*
 WS     [[:space:]]+
-IWORD  short|long|(un)?signed|char|int|HOST_WIDE_INT|bool|size_t|CHAR_BITFIELD
+IWORD  short|long|(un)?signed|char|int|HOST_WIDE_INT|bool|size_t|BOOL_BITFIELD
 ITYPE  {IWORD}({WS}{IWORD})*
 
 %x in_struct in_struct_comment in_comment in_yacc_escape
index 93cfd1884a34ac8fa1b2a225ec2f127558fa5d30..defeed06601c33820a4676a33f4d9d8b95dd19e0 100644 (file)
@@ -486,16 +486,21 @@ extern int snprintf (char *, size_t, const char *, ...);
 #define HOST_BIT_BUCKET "/dev/null"
 #endif
 
-/* Be conservative and only use enum bitfields with GCC.  Likewise for
-   char bitfields.
+/* Be conservative and only use enum bitfields with GCC.
    FIXME: provide a complete autoconf test for buggy enum bitfields.  */
 
 #if (GCC_VERSION > 2000)
 #define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
-#define CHAR_BITFIELD __extension__ unsigned char
 #else
 #define ENUM_BITFIELD(TYPE) unsigned int
-#define CHAR_BITFIELD unsigned int
+#endif
+
+/* We only use bool bitfields with gcc3.  Some supposedly C99
+   compilers don't handle them correctly.  */
+#if (GCC_VERSION >= 3000)
+#define BOOL_BITFIELD _Bool
+#else
+#define BOOL_BITFIELD unsigned int
 #endif
 
 #ifndef offsetof