From feea5b18cc9fb53a22f9a57e941f45e75a8b0203 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 12 May 2005 13:06:15 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/c-common.c | 5 ----- gcc/c-common.h | 14 -------------- gcc/cp/ChangeLog | 10 ++++++++++ gcc/cp/cp-tree.h | 11 +++++------ gcc/cp/lex.c | 15 +++++++++++++-- 6 files changed, 35 insertions(+), 27 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 11b87280666..0822e0cb300 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-05-12 Ian Lance Taylor + + * 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 * config/sparc/sparc.h: Remove dead code. diff --git a/gcc/c-common.c b/gcc/c-common.c index 0e373775485..b2ba01e7e91 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -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. */ diff --git a/gcc/c-common.h b/gcc/c-common.h index c43531bc88a..94532cc1e6e 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -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); diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 82415340a9e..e3e43b72a4b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,13 @@ +2005-05-12 Ian Lance Taylor + + * 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 * typeck.c (build_unary_op): Do not resort to address arithmetic diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index b5eab932f20..39d472bdc08 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -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. */ diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index 0af33813c7c..dacac18286f 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -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+ -- 2.30.2