From d75d71e0acaac3a1d67061ca26fdabd05d6a3295 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sun, 22 Jun 2008 14:56:08 +0000 Subject: [PATCH] c-lex.c (narrowest_unsigned_type): Change itk to int. * c-lex.c (narrowest_unsigned_type): Change itk to int. (narrowest_signed_type): Likewise. * c-typeck.c (c_common_type): Change local variable mclass to enum mode_class, twice. (parser_build_binary_op): Compare the TREE_CODE_CLASS with tcc_comparison, not the tree code itself. * c-common.c (def_fn_type): Pass int, not an enum, to va_arg. (c_expand_expr): Cast modifier to enum expand_modifier. * c-common.h (C_RID_CODE): Add casts. (C_SET_RID_CODE): Define. * c-parser.c (c_parse_init): Use C_SET_RID_CODE. (c_lex_one_token): Add cast to avoid warning. (c_parser_objc_type_name): Rename local typename to type_name. (check_no_duplicate_clause): Change code parameter to enum omp_clause_code. (c_parser_omp_var_list_parens): Change kind parameter to enum omp_clause_code. (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to c_parser_omp_list_var_parens. (c_parser_omp_threadprivate): Likewise. * cp/lex.c (init_reswords): Use C_SET_RID_CODE. * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise. * c-format.c (NO_FMT): Define. (printf_length_specs): Use NO_FMT. (asm_fprintf_length_specs): Likewise. (gcc_diag_length_specs): Likewise. (scanf_length_specs): Likewise. (strfmon_length_specs): Likewise. (gcc_gfc_length_specs): Likewise. (printf_flag_specs): Change 0 to STD_C89. (asm_fprintf_flag_specs): Likewise. (gcc_diag_flag_specs): Likewise. (gcc_cxxdiag_flag_specs): Likewise. (scanf_flag_specs): Likewise. (strftime_flag_specs): Likewise. (strfmon_flag_specs): Likewise. (print_char_table): Likewise. (asm_fprintf_char_table): Likewise. (gcc_diag_char_table): Likewise. (gcc_tdiag_char_table): Likewise. (gcc_cdiag_char_table): Likewise. (gcc_cxxdiag_char_table): Likewise. (gcc_gfc_char_table): Likewise. (scan_char_table): Likewise. (time_char_table): Likewis. (monetary_char_table): Likewise. * c-format.h (BADLEN): Likewise. From-SVN: r137019 --- gcc/ChangeLog | 50 ++++++++++++++++++++++++++++++ gcc/c-common.c | 5 +-- gcc/c-common.h | 5 ++- gcc/c-format.c | 82 +++++++++++++++++++++++++------------------------ gcc/c-format.h | 2 +- gcc/c-lex.c | 8 ++--- gcc/c-parser.c | 22 +++++++------ gcc/c-typeck.c | 6 ++-- gcc/cp/lex.c | 2 +- gcc/cp/parser.c | 2 +- 10 files changed, 121 insertions(+), 63 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f92bae9d901..7f861693332 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,53 @@ +2008-06-22 Ian Lance Taylor + + * c-lex.c (narrowest_unsigned_type): Change itk to int. + (narrowest_signed_type): Likewise. + * c-typeck.c (c_common_type): Change local variable mclass to enum + mode_class, twice. + (parser_build_binary_op): Compare the TREE_CODE_CLASS with + tcc_comparison, not the tree code itself. + * c-common.c (def_fn_type): Pass int, not an enum, to va_arg. + (c_expand_expr): Cast modifier to enum expand_modifier. + * c-common.h (C_RID_CODE): Add casts. + (C_SET_RID_CODE): Define. + * c-parser.c (c_parse_init): Use C_SET_RID_CODE. + (c_lex_one_token): Add cast to avoid warning. + (c_parser_objc_type_name): Rename local typename to type_name. + (check_no_duplicate_clause): Change code parameter to enum + omp_clause_code. + (c_parser_omp_var_list_parens): Change kind parameter to enum + omp_clause_code. + (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to + c_parser_omp_list_var_parens. + (c_parser_omp_threadprivate): Likewise. + * cp/lex.c (init_reswords): Use C_SET_RID_CODE. + * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise. + * c-format.c (NO_FMT): Define. + (printf_length_specs): Use NO_FMT. + (asm_fprintf_length_specs): Likewise. + (gcc_diag_length_specs): Likewise. + (scanf_length_specs): Likewise. + (strfmon_length_specs): Likewise. + (gcc_gfc_length_specs): Likewise. + (printf_flag_specs): Change 0 to STD_C89. + (asm_fprintf_flag_specs): Likewise. + (gcc_diag_flag_specs): Likewise. + (gcc_cxxdiag_flag_specs): Likewise. + (scanf_flag_specs): Likewise. + (strftime_flag_specs): Likewise. + (strfmon_flag_specs): Likewise. + (print_char_table): Likewise. + (asm_fprintf_char_table): Likewise. + (gcc_diag_char_table): Likewise. + (gcc_tdiag_char_table): Likewise. + (gcc_cdiag_char_table): Likewise. + (gcc_cxxdiag_char_table): Likewise. + (gcc_gfc_char_table): Likewise. + (scan_char_table): Likewise. + (time_char_table): Likewis. + (monetary_char_table): Likewise. + * c-format.h (BADLEN): Likewise. + 2008-06-21 Ian Lance Taylor * tree.h (enum tree_code): Include all-tree.def, not tree.def. diff --git a/gcc/c-common.c b/gcc/c-common.c index ca051c88876..7bb614971d7 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -3558,7 +3558,7 @@ def_fn_type (builtin_type def, builtin_type ret, bool var, int n, ...) va_start (list, n); for (i = 0; i < n; ++i) { - builtin_type a = va_arg (list, builtin_type); + builtin_type a = (builtin_type) va_arg (list, int); t = builtin_types[a]; if (t == error_mark_node) goto egress; @@ -4588,9 +4588,10 @@ finish_label_address_expr (tree label) rtx c_expand_expr (tree exp, rtx target, enum machine_mode tmode, - int modifier /* Actually enum_modifier. */, + int modifiera /* Actually enum expand_modifier. */, rtx *alt_rtl) { + enum expand_modifier modifier = (enum expand_modifier) modifiera; switch (TREE_CODE (exp)) { case COMPOUND_LITERAL_EXPR: diff --git a/gcc/c-common.h b/gcc/c-common.h index 000936969a3..3ddb44bd8d6 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -184,7 +184,10 @@ enum c_tree_index CTI_MAX }; -#define C_RID_CODE(id) (((struct c_common_identifier *) (id))->node.rid_code) +#define C_RID_CODE(id) \ + ((enum rid) (((struct c_common_identifier *) (id))->node.rid_code)) +#define C_SET_RID_CODE(id, code) \ + (((struct c_common_identifier *) (id))->node.rid_code = (unsigned char) code) /* Identifier part common to the C front ends. Inherits from tree_identifier, despite appearances. */ diff --git a/gcc/c-format.c b/gcc/c-format.c index 82f5ff39bc9..6fb96a38ddd 100644 --- a/gcc/c-format.c +++ b/gcc/c-format.c @@ -283,36 +283,38 @@ typedef struct format_wanted_type struct format_wanted_type *next; } format_wanted_type; +/* Convenience macro for format_length_info meaning unused. */ +#define NO_FMT NULL, FMT_LEN_none, STD_C89 static const format_length_info printf_length_specs[] = { { "h", FMT_LEN_h, STD_C89, "hh", FMT_LEN_hh, STD_C99 }, { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C9L }, - { "q", FMT_LEN_ll, STD_EXT, NULL, 0, 0 }, - { "L", FMT_LEN_L, STD_C89, NULL, 0, 0 }, - { "z", FMT_LEN_z, STD_C99, NULL, 0, 0 }, - { "Z", FMT_LEN_z, STD_EXT, NULL, 0, 0 }, - { "t", FMT_LEN_t, STD_C99, NULL, 0, 0 }, - { "j", FMT_LEN_j, STD_C99, NULL, 0, 0 }, - { "H", FMT_LEN_H, STD_EXT, NULL, 0, 0 }, + { "q", FMT_LEN_ll, STD_EXT, NO_FMT }, + { "L", FMT_LEN_L, STD_C89, NO_FMT }, + { "z", FMT_LEN_z, STD_C99, NO_FMT }, + { "Z", FMT_LEN_z, STD_EXT, NO_FMT }, + { "t", FMT_LEN_t, STD_C99, NO_FMT }, + { "j", FMT_LEN_j, STD_C99, NO_FMT }, + { "H", FMT_LEN_H, STD_EXT, NO_FMT }, { "D", FMT_LEN_D, STD_EXT, "DD", FMT_LEN_DD, STD_EXT }, - { NULL, 0, 0, NULL, 0, 0 } + { NO_FMT, NO_FMT } }; /* Length specifiers valid for asm_fprintf. */ static const format_length_info asm_fprintf_length_specs[] = { { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89 }, - { "w", FMT_LEN_none, STD_C89, NULL, 0, 0 }, - { NULL, 0, 0, NULL, 0, 0 } + { "w", FMT_LEN_none, STD_C89, NO_FMT }, + { NO_FMT, NO_FMT } }; /* Length specifiers valid for GCC diagnostics. */ static const format_length_info gcc_diag_length_specs[] = { { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89 }, - { "w", FMT_LEN_none, STD_C89, NULL, 0, 0 }, - { NULL, 0, 0, NULL, 0, 0 } + { "w", FMT_LEN_none, STD_C89, NO_FMT }, + { NO_FMT, NO_FMT } }; /* The custom diagnostics all accept the same length specifiers. */ @@ -325,14 +327,14 @@ static const format_length_info scanf_length_specs[] = { { "h", FMT_LEN_h, STD_C89, "hh", FMT_LEN_hh, STD_C99 }, { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C9L }, - { "q", FMT_LEN_ll, STD_EXT, NULL, 0, 0 }, - { "L", FMT_LEN_L, STD_C89, NULL, 0, 0 }, - { "z", FMT_LEN_z, STD_C99, NULL, 0, 0 }, - { "t", FMT_LEN_t, STD_C99, NULL, 0, 0 }, - { "j", FMT_LEN_j, STD_C99, NULL, 0, 0 }, - { "H", FMT_LEN_H, STD_EXT, NULL, 0, 0 }, + { "q", FMT_LEN_ll, STD_EXT, NO_FMT }, + { "L", FMT_LEN_L, STD_C89, NO_FMT }, + { "z", FMT_LEN_z, STD_C99, NO_FMT }, + { "t", FMT_LEN_t, STD_C99, NO_FMT }, + { "j", FMT_LEN_j, STD_C99, NO_FMT }, + { "H", FMT_LEN_H, STD_EXT, NO_FMT }, { "D", FMT_LEN_D, STD_EXT, "DD", FMT_LEN_DD, STD_EXT }, - { NULL, 0, 0, NULL, 0, 0 } + { NO_FMT, NO_FMT } }; @@ -341,16 +343,16 @@ static const format_length_info scanf_length_specs[] = static const format_length_info strfmon_length_specs[] = { /* A GNU extension. */ - { "L", FMT_LEN_L, STD_C89, NULL, 0, 0 }, - { NULL, 0, 0, NULL, 0, 0 } + { "L", FMT_LEN_L, STD_C89, NO_FMT }, + { NO_FMT, NO_FMT } }; /* For now, the Fortran front-end routines only use l as length modifier. */ static const format_length_info gcc_gfc_length_specs[] = { - { "l", FMT_LEN_l, STD_C89, NULL, 0, 0 }, - { NULL, 0, 0, NULL, 0, 0 } + { "l", FMT_LEN_l, STD_C89, NO_FMT }, + { NO_FMT, NO_FMT } }; @@ -366,7 +368,7 @@ static const format_flag_spec printf_flag_specs[] = { 'w', 0, 0, N_("field width"), N_("field width in printf format"), STD_C89 }, { 'p', 0, 0, N_("precision"), N_("precision in printf format"), STD_C89 }, { 'L', 0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 }, - { 0, 0, 0, NULL, NULL, 0 } + { 0, 0, 0, NULL, NULL, STD_C89 } }; @@ -388,7 +390,7 @@ static const format_flag_spec asm_fprintf_flag_specs[] = { 'w', 0, 0, N_("field width"), N_("field width in printf format"), STD_C89 }, { 'p', 0, 0, N_("precision"), N_("precision in printf format"), STD_C89 }, { 'L', 0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 }, - { 0, 0, 0, NULL, NULL, 0 } + { 0, 0, 0, NULL, NULL, STD_C89 } }; static const format_flag_pair asm_fprintf_flag_pairs[] = @@ -419,7 +421,7 @@ static const format_flag_spec gcc_diag_flag_specs[] = { 'q', 0, 0, N_("'q' flag"), N_("the 'q' diagnostic flag"), STD_C89 }, { 'p', 0, 0, N_("precision"), N_("precision in printf format"), STD_C89 }, { 'L', 0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 }, - { 0, 0, 0, NULL, NULL, 0 } + { 0, 0, 0, NULL, NULL, STD_C89 } }; #define gcc_tdiag_flag_specs gcc_diag_flag_specs @@ -432,7 +434,7 @@ static const format_flag_spec gcc_cxxdiag_flag_specs[] = { 'q', 0, 0, N_("'q' flag"), N_("the 'q' diagnostic flag"), STD_C89 }, { 'p', 0, 0, N_("precision"), N_("precision in printf format"), STD_C89 }, { 'L', 0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 }, - { 0, 0, 0, NULL, NULL, 0 } + { 0, 0, 0, NULL, NULL, STD_C89 } }; static const format_flag_spec scanf_flag_specs[] = @@ -444,7 +446,7 @@ static const format_flag_spec scanf_flag_specs[] = { 'L', 0, 0, N_("length modifier"), N_("length modifier in scanf format"), STD_C89 }, { '\'', 0, 0, N_("''' flag"), N_("the ''' scanf flag"), STD_EXT }, { 'I', 0, 0, N_("'I' flag"), N_("the 'I' scanf flag"), STD_EXT }, - { 0, 0, 0, NULL, NULL, 0 } + { 0, 0, 0, NULL, NULL, STD_C89 } }; @@ -467,7 +469,7 @@ static const format_flag_spec strftime_flag_specs[] = { 'E', 0, 0, N_("'E' modifier"), N_("the 'E' strftime modifier"), STD_C99 }, { 'O', 0, 0, N_("'O' modifier"), N_("the 'O' strftime modifier"), STD_C99 }, { 'O', 'o', 0, NULL, N_("the 'O' modifier"), STD_EXT }, - { 0, 0, 0, NULL, NULL, 0 } + { 0, 0, 0, NULL, NULL, STD_C89 } }; @@ -494,7 +496,7 @@ static const format_flag_spec strfmon_flag_specs[] = { '#', 0, 0, N_("left precision"), N_("left precision in strfmon format"), STD_C89 }, { 'p', 0, 0, N_("right precision"), N_("right precision in strfmon format"), STD_C89 }, { 'L', 0, 0, N_("length modifier"), N_("length modifier in strfmon format"), STD_C89 }, - { 0, 0, 0, NULL, NULL, 0 } + { 0, 0, 0, NULL, NULL, STD_C89 } }; static const format_flag_pair strfmon_flag_pairs[] = @@ -524,7 +526,7 @@ static const format_char_info print_char_table[] = { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R", NULL }, /* GNU conversion specifiers. */ { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info asm_fprintf_char_table[] = @@ -544,7 +546,7 @@ static const format_char_info asm_fprintf_char_table[] = { "U", 0, STD_C89, NOARGUMENTS, "", "", NULL }, { "r", 0, STD_C89, { T89_I, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "", NULL }, { "@", 0, STD_C89, NOARGUMENTS, "", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info gcc_diag_char_table[] = @@ -567,7 +569,7 @@ static const format_char_info gcc_diag_char_table[] = { "<>'", 0, STD_C89, NOARGUMENTS, "", "", NULL }, { "m", 0, STD_C89, NOARGUMENTS, "q", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info gcc_tdiag_char_table[] = @@ -590,7 +592,7 @@ static const format_char_info gcc_tdiag_char_table[] = { "<>'", 0, STD_C89, NOARGUMENTS, "", "", NULL }, { "m", 0, STD_C89, NOARGUMENTS, "q", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info gcc_cdiag_char_table[] = @@ -613,7 +615,7 @@ static const format_char_info gcc_cdiag_char_table[] = { "<>'", 0, STD_C89, NOARGUMENTS, "", "", NULL }, { "m", 0, STD_C89, NOARGUMENTS, "q", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info gcc_cxxdiag_char_table[] = @@ -639,7 +641,7 @@ static const format_char_info gcc_cxxdiag_char_table[] = { "<>'", 0, STD_C89, NOARGUMENTS, "", "", NULL }, { "m", 0, STD_C89, NOARGUMENTS, "q", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info gcc_gfc_char_table[] = @@ -657,7 +659,7 @@ static const format_char_info gcc_gfc_char_table[] = /* This will require a "locus" at runtime. */ { "L", 0, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "R", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info scan_char_table[] = @@ -678,7 +680,7 @@ static const format_char_info scan_char_table[] = /* X/Open conversion specifiers. */ { "C", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*mw", "W", NULL }, { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*amw", "W", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info time_char_table[] = @@ -705,13 +707,13 @@ static const format_char_info time_char_table[] = /* GNU conversion specifiers. */ { "kls", 0, STD_EXT, NOLENGTHS, "-_0Ow", "", NULL }, { "P", 0, STD_EXT, NOLENGTHS, "", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; static const format_char_info monetary_char_table[] = { { "in", 0, STD_C89, { T89_D, BADLEN, BADLEN, BADLEN, BADLEN, T89_LD, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "=^+(!-w#p", "", NULL }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } + { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL } }; /* This must be in the same order as enum format_type. */ diff --git a/gcc/c-format.h b/gcc/c-format.h index 6f74354c555..2b5b50dd738 100644 --- a/gcc/c-format.h +++ b/gcc/c-format.h @@ -117,7 +117,7 @@ typedef struct /* Macros to fill out tables of these. */ #define NOARGUMENTS { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN } -#define BADLEN { 0, NULL, NULL } +#define BADLEN { STD_C89, NULL, NULL } #define NOLENGTHS { BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN } diff --git a/gcc/c-lex.c b/gcc/c-lex.c index c2a0fa350b5..73834ef413a 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -471,7 +471,7 @@ narrowest_unsigned_type (unsigned HOST_WIDE_INT low, unsigned HOST_WIDE_INT high, unsigned int flags) { - enum integer_type_kind itk; + int itk; if ((flags & CPP_N_WIDTH) == CPP_N_SMALL) itk = itk_unsigned_int; @@ -487,7 +487,7 @@ narrowest_unsigned_type (unsigned HOST_WIDE_INT low, if ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) > high || ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) == high && TREE_INT_CST_LOW (upper) >= low)) - return itk; + return (enum integer_type_kind) itk; } return itk_none; @@ -498,7 +498,7 @@ static enum integer_type_kind narrowest_signed_type (unsigned HOST_WIDE_INT low, unsigned HOST_WIDE_INT high, unsigned int flags) { - enum integer_type_kind itk; + int itk; if ((flags & CPP_N_WIDTH) == CPP_N_SMALL) itk = itk_int; @@ -515,7 +515,7 @@ narrowest_signed_type (unsigned HOST_WIDE_INT low, if ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) > high || ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) == high && TREE_INT_CST_LOW (upper) >= low)) - return itk; + return (enum integer_type_kind) itk; } return itk_none; diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 7607a8dfdcf..45aff80d6c0 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -208,7 +208,7 @@ c_parse_init (void) continue; id = get_identifier (reswords[i].word); - C_RID_CODE (id) = reswords[i].rid; + C_SET_RID_CODE (id, reswords[i].rid); C_IS_RESERVED_WORD (id) = 1; ridpointers [(int) reswords[i].rid] = id; } @@ -396,7 +396,7 @@ c_lex_one_token (c_parser *parser, c_token *token) break; case CPP_PRAGMA: /* We smuggled the cpp_token->u.pragma value in an INTEGER_CST. */ - token->pragma_kind = TREE_INT_CST_LOW (token->value); + token->pragma_kind = (enum pragma_kind) TREE_INT_CST_LOW (token->value); token->value = NULL; break; default: @@ -6312,7 +6312,7 @@ static tree c_parser_objc_type_name (c_parser *parser) { tree quals = NULL_TREE; - struct c_type_name *typename = NULL; + struct c_type_name *type_name = NULL; tree type = NULL_TREE; while (true) { @@ -6332,9 +6332,9 @@ c_parser_objc_type_name (c_parser *parser) break; } if (c_parser_next_token_starts_typename (parser)) - typename = c_parser_type_name (parser); - if (typename) - type = groktypename (typename); + type_name = c_parser_type_name (parser); + if (type_name) + type = groktypename (type_name); return build_tree_list (quals, type); } @@ -6848,7 +6848,8 @@ c_parser_omp_clause_name (c_parser *parser) /* Validate that a clause of the given type does not already exist. */ static void -check_no_duplicate_clause (tree clauses, enum tree_code code, const char *name) +check_no_duplicate_clause (tree clauses, enum omp_clause_code code, + const char *name) { tree c; @@ -6914,7 +6915,8 @@ c_parser_omp_variable_list (c_parser *parser, enum omp_clause_code kind, common case for omp clauses. */ static tree -c_parser_omp_var_list_parens (c_parser *parser, enum tree_code kind, tree list) +c_parser_omp_var_list_parens (c_parser *parser, enum omp_clause_code kind, + tree list) { if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { @@ -7596,7 +7598,7 @@ c_parser_omp_flush (c_parser *parser) { c_parser_consume_pragma (parser); if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) - c_parser_omp_var_list_parens (parser, 0, NULL); + c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL); else if (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) c_parser_error (parser, "expected %<(%> or end of line"); c_parser_skip_to_pragma_eol (parser); @@ -8231,7 +8233,7 @@ c_parser_omp_threadprivate (c_parser *parser) tree vars, t; c_parser_consume_pragma (parser); - vars = c_parser_omp_var_list_parens (parser, 0, NULL); + vars = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL); /* Mark every variable in VARS to be assigned thread local storage. */ for (t = vars; t; t = TREE_CHAIN (t)) diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 23880d16a43..d5a549c9478 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -722,7 +722,7 @@ c_common_type (tree t1, tree t2) signed type. */ if (code1 == FIXED_POINT_TYPE && TYPE_UNSIGNED (t1)) { - unsigned char mclass = 0; + enum mode_class mclass = (enum mode_class) 0; if (GET_MODE_CLASS (m1) == MODE_UFRACT) mclass = MODE_FRACT; else if (GET_MODE_CLASS (m1) == MODE_UACCUM) @@ -733,7 +733,7 @@ c_common_type (tree t1, tree t2) } if (code2 == FIXED_POINT_TYPE && TYPE_UNSIGNED (t2)) { - unsigned char mclass = 0; + enum mode_class mclass = (enum mode_class) 0; if (GET_MODE_CLASS (m2) == MODE_UFRACT) mclass = MODE_FRACT; else if (GET_MODE_CLASS (m2) == MODE_UACCUM) @@ -2767,7 +2767,7 @@ parser_build_binary_op (enum tree_code code, struct c_expr arg1, if (warn_parentheses) warn_about_parentheses (code, code1, code2); - if (code1 != tcc_comparison) + if (TREE_CODE_CLASS (code1) != tcc_comparison) warn_logical_operator (code, arg1.value, arg2.value); /* Warn about comparisons against string literals, with the exception diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index c2744c9f8fd..233011b85d9 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -344,7 +344,7 @@ init_reswords (void) for (i = 0; i < ARRAY_SIZE (reswords); i++) { id = get_identifier (reswords[i].word); - C_RID_CODE (id) = reswords[i].rid; + C_SET_RID_CODE (id, reswords[i].rid); ridpointers [(int) reswords[i].rid] = id; if (! (reswords[i].disable & mask)) C_IS_RESERVED_WORD (id) = 1; diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 81cd03fc863..7d530f50714 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -446,7 +446,7 @@ cp_lexer_get_preprocessor_token (cp_lexer *lexer, cp_token *token) /* Clear out the C_RID_CODE so we don't warn about this particular identifier-turned-keyword again. */ - C_RID_CODE (token->u.value) = RID_MAX; + C_SET_RID_CODE (token->u.value, RID_MAX); } token->ambiguous_p = false;