c-common.h (statement_code_p): Don't declare.

./:	* c-common.h (statement_code_p): Don't declare.
	(STATEMENT_CODE_P): Don't define.
	(INIT_STATEMENT_CODES): Don't define.
	* c-common.c (statement_code_p): Don't define.
cp/:
	* cp-tree.h (cp_stmt_codes): Don't define.
	(statement_code_p): Declare.
	(STATEMENT_CODE_P): Define.
	* lex.c (statement_code_p): Define.
	(cxx_init): Use actual codes in stmt_codes initializer, not
	cp_stmt_codes macro.  Initialize statement_code_p directly, rather
	than using INIT_STATEMENT_CODES.

From-SVN: r99615
This commit is contained in:
Ian Lance Taylor 2005-05-12 13:06:15 +00:00 committed by Ian Lance Taylor
parent 5a8c20ce52
commit feea5b18cc
6 changed files with 35 additions and 27 deletions

View file

@ -1,3 +1,10 @@
2005-05-12 Ian Lance Taylor <ian@airs.com>
* c-common.h (statement_code_p): Don't declare.
(STATEMENT_CODE_P): Don't define.
(INIT_STATEMENT_CODES): Don't define.
* c-common.c (statement_code_p): Don't define.
2005-05-12 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.h: Remove dead code.

View file

@ -191,11 +191,6 @@ cpp_reader *parse_in; /* Declared in c-pragma.h. */
*/
tree c_global_trees[CTI_MAX];
/* TRUE if a code represents a statement. The front end init
langhook should take care of initialization of this array. */
bool statement_code_p[MAX_TREE_CODES];
/* Switches common to the C front ends. */

View file

@ -735,20 +735,6 @@ enum c_tree_code {
#undef DEFTREECODE
/* TRUE if a code represents a statement. The front end init
langhook should take care of initialization of this array. */
extern bool statement_code_p[MAX_TREE_CODES];
#define STATEMENT_CODE_P(CODE) statement_code_p[(int) (CODE)]
#define INIT_STATEMENT_CODES(STMT_CODES) \
do { \
unsigned int i; \
memset (&statement_code_p, 0, sizeof (statement_code_p)); \
for (i = 0; i < ARRAY_SIZE (STMT_CODES); i++) \
statement_code_p[STMT_CODES[i]] = true; \
} while (0)
extern int stmts_are_full_exprs_p (void);
extern int anon_aggr_type_p (tree);

View file

@ -1,3 +1,13 @@
2005-05-12 Ian Lance Taylor <ian@airs.com>
* cp-tree.h (cp_stmt_codes): Don't define.
(statement_code_p): Declare.
(STATEMENT_CODE_P): Define.
* lex.c (statement_code_p): Define.
(cxx_init): Use actual codes in stmt_codes initializer, not
cp_stmt_codes macro. Initialize statement_code_p directly, rather
than using INIT_STATEMENT_CODES.
2005-05-09 Mark Mitchell <mark@codesourcery.com>
* typeck.c (build_unary_op): Do not resort to address arithmetic

View file

@ -843,12 +843,11 @@ enum cplus_tree_code {
};
#undef DEFTREECODE
#define cp_stmt_codes \
CTOR_INITIALIZER, TRY_BLOCK, HANDLER, \
EH_SPEC_BLOCK, USING_STMT, TAG_DEFN, \
IF_STMT, CLEANUP_STMT, FOR_STMT, \
WHILE_STMT, DO_STMT, BREAK_STMT, \
CONTINUE_STMT, SWITCH_STMT, EXPR_STMT
/* TRUE if a tree code represents a statement. */
extern bool statement_code_p[MAX_TREE_CODES];
#define STATEMENT_CODE_P(CODE) statement_code_p[(int) (CODE)]
enum languages { lang_c, lang_cplusplus, lang_java };
/* Macros to make error reporting functions' lives easier. */

View file

@ -312,6 +312,10 @@ init_cp_pragma (void)
c_register_pragma ("GCC", "java_exceptions", handle_pragma_java_exceptions);
}
/* TRUE if a code represents a statement. */
bool statement_code_p[MAX_TREE_CODES];
/* Initialize the C++ front end. This function is very sensitive to
the exact order that things are done here. It would be nice if the
initialization done by this routine were moved to its subroutines,
@ -319,11 +323,18 @@ init_cp_pragma (void)
bool
cxx_init (void)
{
unsigned int i;
static const enum tree_code stmt_codes[] = {
cp_stmt_codes
CTOR_INITIALIZER, TRY_BLOCK, HANDLER,
EH_SPEC_BLOCK, USING_STMT, TAG_DEFN,
IF_STMT, CLEANUP_STMT, FOR_STMT,
WHILE_STMT, DO_STMT, BREAK_STMT,
CONTINUE_STMT, SWITCH_STMT, EXPR_STMT
};
INIT_STATEMENT_CODES (stmt_codes);
memset (&statement_code_p, 0, sizeof (statement_code_p));
for (i = 0; i < ARRAY_SIZE (stmt_codes); i++)
statement_code_p[stmt_codes[i]] = true;
/* We cannot just assign to input_filename because it has already
been initialized and will be used later as an N_BINCL for stabs+