system.h (CHAR_BITFIELD): Delete.

* 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
This commit is contained in:
Kaveh R. Ghazi 2004-01-27 02:33:22 +00:00 committed by Kaveh Ghazi
parent ba9119ec89
commit 1c62e7b282
7 changed files with 37 additions and 19 deletions

View 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.

View 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. */

View 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

View 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;
BOOL_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 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

View 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;

View 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

View 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