Commit 1c62e7b2 by Kaveh R. Ghazi Committed by Kaveh Ghazi

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
parent ba9119ec
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> 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New. * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
......
...@@ -230,21 +230,21 @@ struct c_scope GTY(()) ...@@ -230,21 +230,21 @@ struct c_scope GTY(())
/* True if we are currently filling this scope with parameter /* True if we are currently filling this scope with parameter
declarations. */ declarations. */
bool parm_flag : 1; BOOL_BITFIELD parm_flag : 1;
/* True if we already complained about forward parameter decls /* True if we already complained about forward parameter decls
in this scope. This prevents double warnings on in this scope. This prevents double warnings on
foo (int a; int b; ...) */ 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. /* True if this is the outermost block scope of a function body.
This scope contains the parameters, the local variables declared This scope contains the parameters, the local variables declared
in the outermost block, and all the labels (except those in in the outermost block, and all the labels (except those in
nested functions, or declared at block scope with __label__). */ 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. */ /* True means make a BLOCK for this scope no matter what. */
bool keep : 1; BOOL_BITFIELD keep : 1;
}; };
/* The scope currently in effect. */ /* The scope currently in effect. */
......
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> 2004-01-26 Mark Mitchell <mark@codesourcery.com>
PR c++/13663 PR c++/13663
......
...@@ -794,7 +794,7 @@ struct language_function GTY(()) ...@@ -794,7 +794,7 @@ struct language_function GTY(())
int in_base_initializer; int in_base_initializer;
/* True if this function can throw an exception. */ /* 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_use_list *x_named_label_uses;
struct named_label_list *x_named_labels; struct named_label_list *x_named_labels;
...@@ -1013,15 +1013,15 @@ enum languages { lang_c, lang_cplusplus, lang_java }; ...@@ -1013,15 +1013,15 @@ enum languages { lang_c, lang_cplusplus, lang_java };
are put in this structure to save space. */ are put in this structure to save space. */
struct lang_type_header GTY(()) 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; BOOL_BITFIELD has_type_conversion : 1;
CHAR_BITFIELD has_init_ref : 1; BOOL_BITFIELD has_init_ref : 1;
CHAR_BITFIELD has_default_ctor : 1; BOOL_BITFIELD has_default_ctor : 1;
CHAR_BITFIELD uses_multiple_inheritance : 1; BOOL_BITFIELD uses_multiple_inheritance : 1;
CHAR_BITFIELD const_needs_init : 1; BOOL_BITFIELD const_needs_init : 1;
CHAR_BITFIELD ref_needs_init : 1; BOOL_BITFIELD ref_needs_init : 1;
CHAR_BITFIELD has_const_assign_ref : 1; BOOL_BITFIELD has_const_assign_ref : 1;
}; };
/* This structure provides additional information above and beyond /* This structure provides additional information above and beyond
......
...@@ -215,7 +215,7 @@ struct cp_binding_level GTY(()) ...@@ -215,7 +215,7 @@ struct cp_binding_level GTY(())
/* True if this scope is an SK_TEMPLATE_SPEC scope. This field is /* True if this scope is an SK_TEMPLATE_SPEC scope. This field is
only valid if KIND == SK_TEMPLATE_PARMS. */ 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. */ /* true means make a BLOCK for this level regardless of all else. */
unsigned keep : 1; unsigned keep : 1;
......
...@@ -47,7 +47,7 @@ update_lineno (const char *l, size_t len) ...@@ -47,7 +47,7 @@ update_lineno (const char *l, size_t len)
ID [[:alpha:]_][[:alnum:]_]* ID [[:alpha:]_][[:alnum:]_]*
WS [[:space:]]+ 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})* ITYPE {IWORD}({WS}{IWORD})*
%x in_struct in_struct_comment in_comment in_yacc_escape %x in_struct in_struct_comment in_comment in_yacc_escape
......
...@@ -486,16 +486,21 @@ extern int snprintf (char *, size_t, const char *, ...); ...@@ -486,16 +486,21 @@ extern int snprintf (char *, size_t, const char *, ...);
#define HOST_BIT_BUCKET "/dev/null" #define HOST_BIT_BUCKET "/dev/null"
#endif #endif
/* Be conservative and only use enum bitfields with GCC. Likewise for /* Be conservative and only use enum bitfields with GCC.
char bitfields.
FIXME: provide a complete autoconf test for buggy enum bitfields. */ FIXME: provide a complete autoconf test for buggy enum bitfields. */
#if (GCC_VERSION > 2000) #if (GCC_VERSION > 2000)
#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE #define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
#define CHAR_BITFIELD __extension__ unsigned char
#else #else
#define ENUM_BITFIELD(TYPE) unsigned int #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 #endif
#ifndef offsetof #ifndef offsetof
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment