From 1cae46be69832433bab9411d0ad860363b14b8c1 Mon Sep 17 00:00:00 2001 From: aj Date: Thu, 19 Jun 2003 19:43:59 +0000 Subject: [PATCH] * c-aux-info.c: Convert to ISO C99. * c-pragma.c: Likewise. * c-common.c: Likewise. * c-common.h: Likewise. * c-convert.c: Likewise. * c-cppbuiltin.c: Likewise. * c-dump.c: Likewise. * c-decl.c: Likewise * c-format.c: Likewise. * c-incpath.c: Likewise. * c-incpath.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68218 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 20 +- gcc/c-aux-info.c | 51 ++-- gcc/c-common.c | 862 +++++++++++++++++++---------------------------------- gcc/c-common.h | 328 ++++++++++---------- gcc/c-convert.c | 6 +- gcc/c-cppbuiltin.c | 82 ++--- gcc/c-decl.c | 369 +++++++++-------------- gcc/c-dump.c | 12 +- gcc/c-format.c | 119 +++----- gcc/c-incpath.c | 54 ++-- gcc/c-incpath.h | 8 +- gcc/c-pragma.c | 56 ++-- 12 files changed, 752 insertions(+), 1215 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a470fcb..b89b26f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2003-06-19 Andreas Jaeger + + * c-aux-info.c: Convert to ISO C99. + * c-pragma.c: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-convert.c: Likewise. + * c-cppbuiltin.c: Likewise. + * c-dump.c: Likewise. + * c-decl.c: Likewise + * c-format.c: Likewise. + * c-incpath.c: Likewise. + * c-incpath.h: Likewise. + 2003-06-19 Roger Sayle * builtins.c (expand_errno_check): Assume that flag_errno_math @@ -11,7 +25,7 @@ the args after the main switch, and don't modify the orginal exp. 2003-06-19 Aldy Hernandez - + * expr.c (const_vector_from_tree): Initialize remaining elements to 0. @@ -143,7 +157,7 @@ Support configuring with --with-cpu=iwmmxt. * doc/invoke.texi: Document new value for -mcpu= ARM switch. * config/arm/aof.h (REGISTER_NAMES): Add iwmmxt register - names. Fix formatting. + names. Fix formatting. * config/arm/aout.h (REGISTER_NAMES): Add iwmmxt register names. * config/arm/arm-protos.h (arm_emit_vector_const): New @@ -314,7 +328,7 @@ 2003-06-17 Ranjit Mathew Gerald Pfeifer - + * doc/sourcebuild.texi (libgcj Tests): Simplify instructions on how to run Java runtime tests separately. diff --git a/gcc/c-aux-info.c b/gcc/c-aux-info.c index 1297cc1..b0a9ef0 100644 --- a/gcc/c-aux-info.c +++ b/gcc/c-aux-info.c @@ -2,7 +2,7 @@ on information stored in GCC's tree structure. This code implements the -aux-info option. Copyright (C) 1989, 1991, 1994, 1995, 1997, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2003 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@segfault.us.com). This file is part of GCC. @@ -41,12 +41,12 @@ typedef enum formals_style_enum formals_style; static const char *data_type; -static char *affix_data_type PARAMS ((const char *)) ATTRIBUTE_MALLOC; -static const char *gen_formal_list_for_type PARAMS ((tree, formals_style)); -static int deserves_ellipsis PARAMS ((tree)); -static const char *gen_formal_list_for_func_def PARAMS ((tree, formals_style)); -static const char *gen_type PARAMS ((const char *, tree, formals_style)); -static const char *gen_decl PARAMS ((tree, int, formals_style)); +static char *affix_data_type (const char *) ATTRIBUTE_MALLOC; +static const char *gen_formal_list_for_type (tree, formals_style); +static int deserves_ellipsis (tree); +static const char *gen_formal_list_for_func_def (tree, formals_style); +static const char *gen_type (const char *, tree, formals_style); +static const char *gen_decl (tree, int, formals_style); /* Given a string representing an entire type or an entire declaration which only lacks the actual "data-type" specifier (at its left end), @@ -63,8 +63,7 @@ static const char *gen_decl PARAMS ((tree, int, formals_style)); that look as expected. */ static char * -affix_data_type (param) - const char *param; +affix_data_type (const char *param) { char *const type_or_decl = ASTRDUP (param); char *p = type_or_decl; @@ -110,9 +109,7 @@ affix_data_type (param) of empty parens here. */ static const char * -gen_formal_list_for_type (fntype, style) - tree fntype; - formals_style style; +gen_formal_list_for_type (tree fntype, formals_style style) { const char *formal_list = ""; tree formal_type; @@ -194,8 +191,7 @@ gen_formal_list_for_type (fntype, style) if the "function type" parameter list should end with an ellipsis. */ static int -deserves_ellipsis (fntype) - tree fntype; +deserves_ellipsis (tree fntype) { tree formal_type; @@ -230,9 +226,7 @@ deserves_ellipsis (fntype) function formal parameter list. */ static const char * -gen_formal_list_for_func_def (fndecl, style) - tree fndecl; - formals_style style; +gen_formal_list_for_func_def (tree fndecl, formals_style style) { const char *formal_list = ""; tree formal_decl; @@ -305,10 +299,7 @@ gen_formal_list_for_func_def (fndecl, style) string onto the returned "seed". */ static const char * -gen_type (ret_val, t, style) - const char *ret_val; - tree t; - formals_style style; +gen_type (const char *ret_val, tree t, formals_style style) { tree chain_p; @@ -434,13 +425,13 @@ gen_type (ret_val, t, style) case TYPE_DECL: data_type = IDENTIFIER_POINTER (DECL_NAME (t)); break; - + case INTEGER_TYPE: data_type = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (t))); /* Normally, `unsigned' is part of the deal. Not so if it comes - with a type qualifier. */ + with a type qualifier. */ if (TREE_UNSIGNED (t) && TYPE_QUALS (t)) - data_type = concat ("unsigned ", data_type, NULL); + data_type = concat ("unsigned ", data_type, NULL); break; case REAL_TYPE: @@ -479,10 +470,7 @@ gen_type (ret_val, t, style) an attached list of DECL nodes for function formal arguments is present. */ static const char * -gen_decl (decl, is_func_definition, style) - tree decl; - int is_func_definition; - formals_style style; +gen_decl (tree decl, int is_func_definition, formals_style style) { const char *ret_val; @@ -560,11 +548,8 @@ extern FILE *aux_info_file; function definition (even the implicit ones). */ void -gen_aux_info_record (fndecl, is_definition, is_implicit, is_prototyped) - tree fndecl; - int is_definition; - int is_implicit; - int is_prototyped; +gen_aux_info_record (tree fndecl, int is_definition, int is_implicit, + int is_prototyped) { if (flag_gen_aux_info) { diff --git a/gcc/c-common.c b/gcc/c-common.c index 30a7db7..5bb3b44 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -180,7 +180,7 @@ enum c_language_kind c_language; tree c99_function_name_decl_node; Stack of nested function name VAR_DECLs. - + tree saved_function_name_decls; */ @@ -328,9 +328,9 @@ int warn_char_subscripts; int warn_conversion; -/* Warn about #pragma directives that are not recognized. */ +/* Warn about #pragma directives that are not recognized. */ -int warn_unknown_pragmas; /* Tri state variable. */ +int warn_unknown_pragmas; /* Tri state variable. */ /* Warn about format/argument anomalies in calls to formatted I/O functions (*printf, *scanf, strftime, strfmon, etc.). */ @@ -432,8 +432,8 @@ int warn_div_by_zero = 1; int warn_implicit_int; /* Warn about NULL being passed to argument slots marked as requiring - non-NULL. */ - + non-NULL. */ + int warn_nonnull; @@ -476,7 +476,7 @@ int warn_selector; int warn_undeclared_selector; -/* Warn if methods required by a protocol are not implemented in the +/* Warn if methods required by a protocol are not implemented in the class adopting it. When turned off, methods inherited to that class are also considered implemented. */ @@ -595,7 +595,7 @@ int flag_enforce_eh_specs = 1; /* The version of the C++ ABI in use. The following values are allowed: - 0: The version of the ABI believed most conformant with the + 0: The version of the ABI believed most conformant with the C++ ABI specification. This ABI may change as bugs are discovered and fixed. Therefore, 0 will not necessarily indicate the same ABI in different versions of G++. @@ -613,7 +613,7 @@ int flag_abi_version = 1; int warn_abi = 0; /* Nonzero means warn about invalid uses of offsetof. */ - + int warn_invalid_offsetof = 1; /* Nonzero means warn about implicit declarations. */ @@ -683,11 +683,11 @@ int max_tinst_depth = 500; type names and storage classes. It is indexed by a RID_... value. */ tree *ridpointers; -tree (*make_fname_decl) PARAMS ((tree, int)); +tree (*make_fname_decl) (tree, int); /* If non-NULL, the address of a language-specific function that takes any action required right before expand_function_end is called. */ -void (*lang_expand_function_end) PARAMS ((void)); +void (*lang_expand_function_end) (void); /* Nonzero means the expression being parsed will never be evaluated. This is a count, since unevaluated expressions can nest. */ @@ -714,7 +714,7 @@ const struct fname_var_t fname_vars[] = {NULL, 0, 0}, }; -static int constant_fits_type_p PARAMS ((tree, tree)); +static int constant_fits_type_p (tree, tree); /* Keep a stack of if statements. We record the number of compound statements seen up to the if keyword, as well as the line number @@ -737,78 +737,55 @@ static int if_stack_space = 0; /* Stack pointer. */ static int if_stack_pointer = 0; -static tree handle_packed_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_nocommon_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_common_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_noreturn_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_noinline_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_always_inline_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_used_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_unused_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_const_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_transparent_union_attribute PARAMS ((tree *, tree, tree, - int, bool *)); -static tree handle_constructor_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_destructor_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_mode_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_section_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_aligned_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_weak_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_alias_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_visibility_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_tls_model_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_no_instrument_function_attribute PARAMS ((tree *, tree, - tree, int, - bool *)); -static tree handle_malloc_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_no_limit_stack_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_pure_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_deprecated_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_vector_size_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_nonnull_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_nothrow_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree handle_cleanup_attribute PARAMS ((tree *, tree, tree, int, - bool *)); -static tree vector_size_helper PARAMS ((tree, tree)); - -static void check_function_nonnull PARAMS ((tree, tree)); -static void check_nonnull_arg PARAMS ((void *, tree, - unsigned HOST_WIDE_INT)); -static bool nonnull_check_p PARAMS ((tree, unsigned HOST_WIDE_INT)); -static bool get_nonnull_operand PARAMS ((tree, - unsigned HOST_WIDE_INT *)); +static tree handle_packed_attribute (tree *, tree, tree, int, bool *); +static tree handle_nocommon_attribute (tree *, tree, tree, int, bool *); +static tree handle_common_attribute (tree *, tree, tree, int, bool *); +static tree handle_noreturn_attribute (tree *, tree, tree, int, bool *); +static tree handle_noinline_attribute (tree *, tree, tree, int, bool *); +static tree handle_always_inline_attribute (tree *, tree, tree, int, + bool *); +static tree handle_used_attribute (tree *, tree, tree, int, bool *); +static tree handle_unused_attribute (tree *, tree, tree, int, bool *); +static tree handle_const_attribute (tree *, tree, tree, int, bool *); +static tree handle_transparent_union_attribute (tree *, tree, tree, + int, bool *); +static tree handle_constructor_attribute (tree *, tree, tree, int, bool *); +static tree handle_destructor_attribute (tree *, tree, tree, int, bool *); +static tree handle_mode_attribute (tree *, tree, tree, int, bool *); +static tree handle_section_attribute (tree *, tree, tree, int, bool *); +static tree handle_aligned_attribute (tree *, tree, tree, int, bool *); +static tree handle_weak_attribute (tree *, tree, tree, int, bool *) ; +static tree handle_alias_attribute (tree *, tree, tree, int, bool *); +static tree handle_visibility_attribute (tree *, tree, tree, int, + bool *); +static tree handle_tls_model_attribute (tree *, tree, tree, int, + bool *); +static tree handle_no_instrument_function_attribute (tree *, tree, + tree, int, bool *); +static tree handle_malloc_attribute (tree *, tree, tree, int, bool *); +static tree handle_no_limit_stack_attribute (tree *, tree, tree, int, + bool *); +static tree handle_pure_attribute (tree *, tree, tree, int, bool *); +static tree handle_deprecated_attribute (tree *, tree, tree, int, + bool *); +static tree handle_vector_size_attribute (tree *, tree, tree, int, + bool *); +static tree handle_nonnull_attribute (tree *, tree, tree, int, bool *); +static tree handle_nothrow_attribute (tree *, tree, tree, int, bool *); +static tree handle_cleanup_attribute (tree *, tree, tree, int, bool *); +static tree vector_size_helper (tree, tree); + +static void check_function_nonnull (tree, tree); +static void check_nonnull_arg (void *, tree, unsigned HOST_WIDE_INT); +static bool nonnull_check_p (tree, unsigned HOST_WIDE_INT); +static bool get_nonnull_operand (tree, unsigned HOST_WIDE_INT *); /* Table of machine-independent attributes common to all C-like languages. */ const struct attribute_spec c_common_attribute_table[] = { /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */ { "packed", 0, 0, false, false, false, - handle_packed_attribute }, + handle_packed_attribute }, { "nocommon", 0, 0, true, false, false, handle_nocommon_attribute }, { "common", 0, 0, true, false, false, @@ -898,10 +875,7 @@ const struct attribute_spec c_common_format_attribute_table[] = condition to keep line number information accurate. */ void -c_expand_start_cond (cond, compstmt_count, if_stmt) - tree cond; - int compstmt_count; - tree if_stmt; +c_expand_start_cond (tree cond, int compstmt_count, tree if_stmt) { /* Make sure there is enough space on the stack. */ if (if_stack_space == 0) @@ -929,7 +903,7 @@ c_expand_start_cond (cond, compstmt_count, if_stmt) /* Called after the then-clause for an if-statement is processed. */ void -c_finish_then () +c_finish_then (void) { tree if_stmt = if_stack[if_stack_pointer - 1].if_stmt; RECHAIN_STMTS (if_stmt, THEN_CLAUSE (if_stmt)); @@ -939,7 +913,7 @@ c_finish_then () if statement had an ambiguous else clause. */ void -c_expand_end_cond () +c_expand_end_cond (void) { if_stack_pointer--; if (if_stack[if_stack_pointer].needs_warning) @@ -952,7 +926,7 @@ c_expand_end_cond () of an if-then-else. */ void -c_expand_start_else () +c_expand_start_else (void) { /* An ambiguous else warning must be generated for the enclosing if statement, unless we see an else branch for that one, too. */ @@ -972,7 +946,7 @@ c_expand_start_else () /* Called after the else-clause for an if-statement is processed. */ void -c_finish_else () +c_finish_else (void) { tree if_stmt = if_stack[if_stack_pointer - 1].if_stmt; RECHAIN_STMTS (if_stmt, ELSE_CLAUSE (if_stmt)); @@ -987,7 +961,7 @@ c_finish_else () beyond what is strictly necessary for correctness. */ tree -c_begin_if_stmt () +c_begin_if_stmt (void) { tree r; r = build_stmt (IF_STMT, NULL_TREE, NULL_TREE, NULL_TREE); @@ -1003,7 +977,7 @@ c_begin_if_stmt () beyond what is strictly necessary for correctness. */ tree -c_begin_while_stmt () +c_begin_while_stmt (void) { tree r; r = build_stmt (WHILE_STMT, NULL_TREE, NULL_TREE); @@ -1011,9 +985,7 @@ c_begin_while_stmt () } void -c_finish_while_stmt_cond (cond, while_stmt) - tree while_stmt; - tree cond; +c_finish_while_stmt_cond (tree cond, tree while_stmt) { WHILE_COND (while_stmt) = cond; } @@ -1021,11 +993,11 @@ c_finish_while_stmt_cond (cond, while_stmt) /* Push current bindings for the function name VAR_DECLS. */ void -start_fname_decls () +start_fname_decls (void) { unsigned ix; tree saved = NULL_TREE; - + for (ix = 0; fname_vars[ix].decl; ix++) { tree decl = *fname_vars[ix].decl; @@ -1051,7 +1023,7 @@ start_fname_decls () involved. Pop the previous bindings. */ void -finish_fname_decls () +finish_fname_decls (void) { unsigned ix; tree body = NULL_TREE; @@ -1059,7 +1031,7 @@ finish_fname_decls () for (; stack && TREE_VALUE (stack); stack = TREE_CHAIN (stack)) body = chainon (TREE_VALUE (stack), body); - + if (body) { /* They were called into existence, so add to statement tree. Add @@ -1075,10 +1047,10 @@ finish_fname_decls () body = chainon (body, *p); *p = body; } - + for (ix = 0; fname_vars[ix].decl; ix++) *fname_vars[ix].decl = NULL_TREE; - + if (stack) { /* We had saved values, restore them. */ @@ -1088,7 +1060,7 @@ finish_fname_decls () { tree decl = TREE_PURPOSE (saved); unsigned ix = TREE_INT_CST_LOW (TREE_VALUE (saved)); - + *fname_vars[ix].decl = decl; } stack = TREE_CHAIN (stack); @@ -1100,11 +1072,10 @@ finish_fname_decls () by PRETTY_P. */ const char * -fname_as_string (pretty_p) - int pretty_p; +fname_as_string (int pretty_p) { const char *name = NULL; - + if (pretty_p) name = (current_function_decl ? (*lang_hooks.decl_printable_name) (current_function_decl, 2) @@ -1120,11 +1091,10 @@ fname_as_string (pretty_p) required by the supplied RID value. */ const char * -fname_string (rid) - unsigned rid; +fname_string (unsigned int rid) { unsigned ix; - + for (ix = 0; fname_vars[ix].decl; ix++) if (fname_vars[ix].rid == rid) break; @@ -1139,9 +1109,7 @@ fname_string (rid) this language independent code. */ tree -fname_decl (rid, id) - unsigned rid; - tree id; +fname_decl (unsigned int rid, tree id) { unsigned ix; tree decl = NULL_TREE; @@ -1161,7 +1129,7 @@ fname_decl (rid, id) it from appearing in the RTL. */ int saved_lineno = input_line; input_line = 0; - + decl = (*make_fname_decl) (id, fname_vars[ix].pretty); if (last_tree != saved_last_tree) { @@ -1187,8 +1155,7 @@ fname_decl (rid, id) /* Given a STRING_CST, give it a suitable array-of-chars data type. */ tree -fix_string_type (value) - tree value; +fix_string_type (tree value) { const int wchar_bytes = TYPE_PRECISION (wchar_type_node) / BITS_PER_UNIT; const int wide_flag = TREE_TYPE (value) == wchar_array_type_node; @@ -1231,8 +1198,7 @@ fix_string_type (value) STRING_CST. */ tree -combine_strings (strings) - varray_type strings; +combine_strings (varray_type strings) { const int wchar_bytes = TYPE_PRECISION (wchar_type_node) / BITS_PER_UNIT; const int nstrings = VARRAY_ACTIVE_SIZE (strings); @@ -1258,7 +1224,7 @@ combine_strings (strings) { length += (TREE_STRING_LENGTH (t) - 1); if (C_ARTIFICIAL_STRING_P (t) && !in_system_header) - warning ("concatenation of string literals with __FUNCTION__ is deprecated"); + warning ("concatenation of string literals with __FUNCTION__ is deprecated"); } } @@ -1333,12 +1299,13 @@ combine_strings (strings) return value; } -static int is_valid_printf_arglist PARAMS ((tree)); -static rtx c_expand_builtin PARAMS ((tree, rtx, enum machine_mode, enum expand_modifier)); -static rtx c_expand_builtin_printf PARAMS ((tree, rtx, enum machine_mode, - enum expand_modifier, int, int)); -static rtx c_expand_builtin_fprintf PARAMS ((tree, rtx, enum machine_mode, - enum expand_modifier, int, int)); +static int is_valid_printf_arglist (tree); +static rtx c_expand_builtin (tree, rtx, enum machine_mode, + enum expand_modifier); +static rtx c_expand_builtin_printf (tree, rtx, enum machine_mode, + enum expand_modifier, int, int); +static rtx c_expand_builtin_fprintf (tree, rtx, enum machine_mode, + enum expand_modifier, int, int); /* Print a warning if a constant expression had overflow in folding. Invoke this function on every expression that the language @@ -1347,8 +1314,7 @@ static rtx c_expand_builtin_fprintf PARAMS ((tree, rtx, enum machine_mode, constant expression to overflow. */ void -constant_expression_warning (value) - tree value; +constant_expression_warning (tree value) { if ((TREE_CODE (value) == INTEGER_CST || TREE_CODE (value) == REAL_CST || TREE_CODE (value) == VECTOR_CST @@ -1365,8 +1331,7 @@ constant_expression_warning (value) however, do not invoke this function on operands of explicit casts. */ void -overflow_warning (value) - tree value; +overflow_warning (tree value) { if ((TREE_CODE (value) == INTEGER_CST || (TREE_CODE (value) == COMPLEX_CST @@ -1400,8 +1365,7 @@ overflow_warning (value) converted to an unsigned type. */ void -unsigned_conversion_warning (result, operand) - tree result, operand; +unsigned_conversion_warning (tree result, tree operand) { tree type = TREE_TYPE (result); @@ -1423,23 +1387,21 @@ unsigned_conversion_warning (result, operand) for type TYPE (an INTEGER_TYPE). */ static int -constant_fits_type_p (c, type) - tree c, type; +constant_fits_type_p (tree c, tree type) { if (TREE_CODE (c) == INTEGER_CST) return int_fits_type_p (c, type); c = convert (type, c); return !TREE_OVERFLOW (c); -} +} /* Convert EXPR to TYPE, warning about conversion problems with constants. Invoke this function on every expression that is converted implicitly, i.e. because of language rules and not because of an explicit cast. */ tree -convert_and_check (type, expr) - tree type, expr; +convert_and_check (tree type, tree expr) { tree t = convert (type, expr); if (TREE_CODE (t) == INTEGER_CST) @@ -1502,21 +1464,18 @@ static struct tlist *warned_ids; cache the results. */ static struct tlist_cache *save_expr_cache; -static void add_tlist PARAMS ((struct tlist **, struct tlist *, tree, int)); -static void merge_tlist PARAMS ((struct tlist **, struct tlist *, int)); -static void verify_tree PARAMS ((tree, struct tlist **, struct tlist **, tree)); -static int warning_candidate_p PARAMS ((tree)); -static void warn_for_collisions PARAMS ((struct tlist *)); -static void warn_for_collisions_1 PARAMS ((tree, tree, struct tlist *, int)); -static struct tlist *new_tlist PARAMS ((struct tlist *, tree, tree)); -static void verify_sequence_points PARAMS ((tree)); +static void add_tlist (struct tlist **, struct tlist *, tree, int); +static void merge_tlist (struct tlist **, struct tlist *, int); +static void verify_tree (tree, struct tlist **, struct tlist **, tree); +static int warning_candidate_p (tree); +static void warn_for_collisions (struct tlist *); +static void warn_for_collisions_1 (tree, tree, struct tlist *, int); +static struct tlist *new_tlist (struct tlist *, tree, tree); +static void verify_sequence_points (tree); /* Create a new struct tlist and fill in its fields. */ static struct tlist * -new_tlist (next, t, writer) - struct tlist *next; - tree t; - tree writer; +new_tlist (struct tlist *next, tree t, tree writer) { struct tlist *l; l = (struct tlist *) obstack_alloc (&tlist_obstack, sizeof *l); @@ -1530,11 +1489,7 @@ new_tlist (next, t, writer) is nonnull, we ignore any node we find which has a writer equal to it. */ static void -add_tlist (to, add, exclude_writer, copy) - struct tlist **to; - struct tlist *add; - tree exclude_writer; - int copy; +add_tlist (struct tlist **to, struct tlist *add, tree exclude_writer, int copy) { while (add) { @@ -1554,10 +1509,7 @@ add_tlist (to, add, exclude_writer, copy) write. */ static void -merge_tlist (to, add, copy) - struct tlist **to; - struct tlist *add; - int copy; +merge_tlist (struct tlist **to, struct tlist *add, int copy) { struct tlist **end = to; @@ -1592,10 +1544,8 @@ merge_tlist (to, add, copy) is nonzero. */ static void -warn_for_collisions_1 (written, writer, list, only_writes) - tree written, writer; - struct tlist *list; - int only_writes; +warn_for_collisions_1 (tree written, tree writer, struct tlist *list, + int only_writes) { struct tlist *tmp; @@ -1622,11 +1572,10 @@ warn_for_collisions_1 (written, writer, list, only_writes) can cause conflicts due to missing sequence points. */ static void -warn_for_collisions (list) - struct tlist *list; +warn_for_collisions (struct tlist *list) { struct tlist *tmp; - + for (tmp = list; tmp; tmp = tmp->next) { if (tmp->writer) @@ -1637,8 +1586,7 @@ warn_for_collisions (list) /* Return nonzero if X is a tree that can be verified by the sequence point warnings. */ static int -warning_candidate_p (x) - tree x; +warning_candidate_p (tree x) { return TREE_CODE (x) == VAR_DECL || TREE_CODE (x) == PARM_DECL; } @@ -1669,10 +1617,8 @@ warning_candidate_p (x) way, so that no more than one access to B is recorded. */ static void -verify_tree (x, pbefore_sp, pno_sp, writer) - tree x; - struct tlist **pbefore_sp, **pno_sp; - tree writer; +verify_tree (tree x, struct tlist **pbefore_sp, struct tlist **pno_sp, + tree writer) { struct tlist *tmp_before, *tmp_nosp, *tmp_list2, *tmp_list3; enum tree_code code; @@ -1867,8 +1813,7 @@ verify_tree (x, pbefore_sp, pno_sp, writer) points. */ static void -verify_sequence_points (expr) - tree expr; +verify_sequence_points (tree expr) { struct tlist *before_sp = 0, *after_sp = 0; @@ -1886,8 +1831,7 @@ verify_sequence_points (expr) } tree -c_expand_expr_stmt (expr) - tree expr; +c_expand_expr_stmt (tree expr) { /* Do default conversion if safe and possibly important, in case within ({...}). */ @@ -1904,15 +1848,14 @@ c_expand_expr_stmt (expr) && TREE_CODE (TREE_TYPE (expr)) != ARRAY_TYPE) error ("expression statement has incomplete type"); - last_expr_type = TREE_TYPE (expr); + last_expr_type = TREE_TYPE (expr); return add_stmt (build_stmt (EXPR_STMT, expr)); } /* Validate the expression after `case' and apply default promotions. */ tree -check_case_value (value) - tree value; +check_case_value (tree value) { if (value == NULL_TREE) return value; @@ -1951,9 +1894,7 @@ check_case_value (value) that is unsigned if UNSIGNEDP is nonzero, otherwise signed. */ tree -c_common_type_for_size (bits, unsignedp) - unsigned bits; - int unsignedp; +c_common_type_for_size (unsigned int bits, int unsignedp) { if (bits == TYPE_PRECISION (integer_type_node)) return unsignedp ? unsigned_type_node : integer_type_node; @@ -1995,9 +1936,7 @@ c_common_type_for_size (bits, unsignedp) then UNSIGNEDP selects between signed and unsigned types. */ tree -c_common_type_for_mode (mode, unsignedp) - enum machine_mode mode; - int unsignedp; +c_common_type_for_mode (enum machine_mode mode, int unsignedp) { if (mode == TYPE_MODE (integer_type_node)) return unsignedp ? unsigned_type_node : integer_type_node; @@ -2087,8 +2026,7 @@ c_common_type_for_mode (mode, unsignedp) /* Return an unsigned type the same as TYPE in other respects. */ tree -c_common_unsigned_type (type) - tree type; +c_common_unsigned_type (tree type) { tree type1 = TYPE_MAIN_VARIANT (type); if (type1 == signed_char_type_node || type1 == char_type_node) @@ -2122,8 +2060,7 @@ c_common_unsigned_type (type) /* Return a signed type the same as TYPE in other respects. */ tree -c_common_signed_type (type) - tree type; +c_common_signed_type (tree type) { tree type1 = TYPE_MAIN_VARIANT (type); if (type1 == unsigned_char_type_node || type1 == char_type_node) @@ -2158,9 +2095,7 @@ c_common_signed_type (type) signed according to UNSIGNEDP. */ tree -c_common_signed_or_unsigned_type (unsignedp, type) - int unsignedp; - tree type; +c_common_signed_or_unsigned_type (int unsignedp, tree type) { if (! INTEGRAL_TYPE_P (type) || TREE_UNSIGNED (type) == unsignedp) @@ -2201,9 +2136,7 @@ c_common_signed_or_unsigned_type (unsignedp, type) signed or unsigned type, UNSIGNEDP says which. */ unsigned int -min_precision (value, unsignedp) - tree value; - int unsignedp; +min_precision (tree value, int unsignedp) { int log; @@ -2231,8 +2164,7 @@ min_precision (value, unsignedp) c_common_truthvalue_conversion). */ void -binary_op_error (code) - enum tree_code code; +binary_op_error (enum tree_code code) { const char *opname; @@ -2308,10 +2240,8 @@ binary_op_error (code) that value. */ tree -shorten_compare (op0_ptr, op1_ptr, restype_ptr, rescode_ptr) - tree *op0_ptr, *op1_ptr; - tree *restype_ptr; - enum tree_code *rescode_ptr; +shorten_compare (tree *op0_ptr, tree *op1_ptr, tree *restype_ptr, + enum tree_code *rescode_ptr) { tree type; tree op0 = *op0_ptr; @@ -2636,9 +2566,7 @@ shorten_compare (op0_ptr, op1_ptr, restype_ptr, rescode_ptr) of pointer PTROP and integer INTOP. */ tree -pointer_int_sum (resultcode, ptrop, intop) - enum tree_code resultcode; - tree ptrop, intop; +pointer_int_sum (enum tree_code resultcode, tree ptrop, tree intop) { tree size_exp; @@ -2712,7 +2640,7 @@ pointer_int_sum (resultcode, ptrop, intop) if (TYPE_PRECISION (TREE_TYPE (intop)) != TYPE_PRECISION (sizetype) || TREE_UNSIGNED (TREE_TYPE (intop)) != TREE_UNSIGNED (sizetype)) - intop = convert (c_common_type_for_size (TYPE_PRECISION (sizetype), + intop = convert (c_common_type_for_size (TYPE_PRECISION (sizetype), TREE_UNSIGNED (sizetype)), intop); /* Replace the integer argument with a suitable product by the object size. @@ -2745,8 +2673,7 @@ pointer_int_sum (resultcode, ptrop, intop) The resulting type should always be `boolean_type_node'. */ tree -c_common_truthvalue_conversion (expr) - tree expr; +c_common_truthvalue_conversion (tree expr) { if (TREE_CODE (expr) == ERROR_MARK) return expr; @@ -2907,17 +2834,15 @@ c_common_truthvalue_conversion (expr) return build_binary_op (NE_EXPR, expr, integer_zero_node, 1); } -static tree builtin_function_2 PARAMS ((const char *, const char *, tree, tree, - int, enum built_in_class, int, int, - tree)); +static tree builtin_function_2 (const char *, const char *, tree, tree, + int, enum built_in_class, int, int, + tree); /* Make a variant type in the proper way for C/C++, propagating qualifiers down to the element type of an array. */ tree -c_build_qualified_type (type, type_quals) - tree type; - int type_quals; +c_build_qualified_type (tree type, int type_quals) { /* A restrict-qualified pointer type must be a pointer to object or incomplete type. Note that the use of POINTER_TYPE_P also allows @@ -2944,12 +2869,10 @@ c_build_qualified_type (type, type_quals) /* Apply the TYPE_QUALS to the new DECL. */ void -c_apply_type_quals_to_decl (type_quals, decl) - int type_quals; - tree decl; +c_apply_type_quals_to_decl (int type_quals, tree decl) { if ((type_quals & TYPE_QUAL_CONST) - || (TREE_TYPE (decl) + || (TREE_TYPE (decl) && TREE_CODE (TREE_TYPE (decl)) == REFERENCE_TYPE)) TREE_READONLY (decl) = 1; if (type_quals & TYPE_QUAL_VOLATILE) @@ -2975,11 +2898,10 @@ c_apply_type_quals_to_decl (type_quals, decl) or a type. Return -1 if we don't do anything special. */ HOST_WIDE_INT -c_common_get_alias_set (t) - tree t; +c_common_get_alias_set (tree t) { tree u; - + /* Permit type-punning when accessing a union, provided the access is directly through the union. For example, this code does not permit taking the address of a union member and then storing @@ -3059,18 +2981,15 @@ c_common_get_alias_set (t) flag controls whether we should diagnose possibly ill-formed constructs or not. */ tree -c_sizeof_or_alignof_type (type, op, complain) - tree type; - enum tree_code op; - int complain; +c_sizeof_or_alignof_type (tree type, enum tree_code op, int complain) { const char *op_name; tree value = NULL; enum tree_code type_code = TREE_CODE (type); - + my_friendly_assert (op == SIZEOF_EXPR || op == ALIGNOF_EXPR, 20020720); op_name = op == SIZEOF_EXPR ? "sizeof" : "__alignof__"; - + if (type_code == FUNCTION_TYPE) { if (op == SIZEOF_EXPR) @@ -3084,7 +3003,7 @@ c_sizeof_or_alignof_type (type, op, complain) } else if (type_code == VOID_TYPE || type_code == ERROR_MARK) { - if (type_code == VOID_TYPE + if (type_code == VOID_TYPE && complain && (pedantic || warn_pointer_arith)) pedwarn ("invalid application of `%s' to a void type", op_name); value = size_one_node; @@ -3112,7 +3031,7 @@ c_sizeof_or_alignof_type (type, op, complain) `size_t', which is just a typedef for an ordinary integer type. */ value = fold (build1 (NOP_EXPR, size_type_node, value)); my_friendly_assert (!TYPE_IS_SIZETYPE (TREE_TYPE (value)), 20001021); - + return value; } @@ -3122,14 +3041,13 @@ c_sizeof_or_alignof_type (type, op, complain) "aligned" __attribute__ specification). */ tree -c_alignof_expr (expr) - tree expr; +c_alignof_expr (tree expr) { tree t; if (TREE_CODE (expr) == VAR_DECL) t = size_int (DECL_ALIGN (expr) / BITS_PER_UNIT); - + else if (TREE_CODE (expr) == COMPONENT_REF && DECL_C_BIT_FIELD (TREE_OPERAND (expr, 1))) { @@ -3139,13 +3057,13 @@ c_alignof_expr (expr) else if (TREE_CODE (expr) == COMPONENT_REF && TREE_CODE (TREE_OPERAND (expr, 1)) == FIELD_DECL) t = size_int (DECL_ALIGN (TREE_OPERAND (expr, 1)) / BITS_PER_UNIT); - + else if (TREE_CODE (expr) == INDIRECT_REF) { tree t = TREE_OPERAND (expr, 0); tree best = t; int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t))); - + while (TREE_CODE (t) == NOP_EXPR && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE) { @@ -3186,15 +3104,15 @@ static GTY(()) tree built_in_attributes[(int) ATTR_LAST]; static bool c_attrs_initialized = false; -static void c_init_attributes PARAMS ((void)); +static void c_init_attributes (void); /* Build tree nodes and builtin functions common to both C and C++ language frontends. */ void -c_common_nodes_and_builtins () +c_common_nodes_and_builtins (void) { - enum builtin_type + enum builtin_type { #define DEF_PRIMITIVE_TYPE(NAME, VALUE) NAME, #define DEF_FUNCTION_TYPE_0(NAME, RETURN) NAME, @@ -3469,7 +3387,7 @@ c_common_nodes_and_builtins () va_list_arg_type_node = va_list_type_node; va_list_ref_type_node = build_reference_type (va_list_type_node); } - + #define DEF_PRIMITIVE_TYPE(ENUM, VALUE) \ builtin_types[(int) ENUM] = VALUE; #define DEF_FUNCTION_TYPE_0(ENUM, RETURN) \ @@ -3484,7 +3402,7 @@ c_common_nodes_and_builtins () void_list_node)); #define DEF_FUNCTION_TYPE_2(ENUM, RETURN, ARG1, ARG2) \ builtin_types[(int) ENUM] \ - = build_function_type \ + = build_function_type \ (builtin_types[(int) RETURN], \ tree_cons (NULL_TREE, \ builtin_types[(int) ARG1], \ @@ -3510,9 +3428,9 @@ c_common_nodes_and_builtins () builtin_types[(int) ARG1], \ tree_cons (NULL_TREE, \ builtin_types[(int) ARG2], \ - tree_cons \ + tree_cons \ (NULL_TREE, \ - builtin_types[(int) ARG3], \ + builtin_types[(int) ARG3], \ tree_cons (NULL_TREE, \ builtin_types[(int) ARG4], \ void_list_node))))); @@ -3521,14 +3439,14 @@ c_common_nodes_and_builtins () = build_function_type (builtin_types[(int) RETURN], NULL_TREE); #define DEF_FUNCTION_TYPE_VAR_1(ENUM, RETURN, ARG1) \ builtin_types[(int) ENUM] \ - = build_function_type (builtin_types[(int) RETURN], \ + = build_function_type (builtin_types[(int) RETURN], \ tree_cons (NULL_TREE, \ builtin_types[(int) ARG1], \ NULL_TREE)); #define DEF_FUNCTION_TYPE_VAR_2(ENUM, RETURN, ARG1, ARG2) \ builtin_types[(int) ENUM] \ - = build_function_type \ + = build_function_type \ (builtin_types[(int) RETURN], \ tree_cons (NULL_TREE, \ builtin_types[(int) ARG1], \ @@ -3538,7 +3456,7 @@ c_common_nodes_and_builtins () #define DEF_FUNCTION_TYPE_VAR_3(ENUM, RETURN, ARG1, ARG2, ARG3) \ builtin_types[(int) ENUM] \ - = build_function_type \ + = build_function_type \ (builtin_types[(int) RETURN], \ tree_cons (NULL_TREE, \ builtin_types[(int) ARG1], \ @@ -3596,7 +3514,7 @@ c_common_nodes_and_builtins () built_in_decls[(int) ENUM] = decl; \ if (IMPLICIT) \ implicit_built_in_decls[(int) ENUM] = decl; \ - } + } #include "builtins.def" #undef DEF_BUILTIN @@ -3606,8 +3524,7 @@ c_common_nodes_and_builtins () } tree -build_va_arg (expr, type) - tree expr, type; +build_va_arg (tree expr, tree type) { return build1 (VA_ARG_EXPR, type, expr); } @@ -3622,14 +3539,13 @@ typedef struct disabled_builtin } disabled_builtin; static disabled_builtin *disabled_builtins = NULL; -static bool builtin_function_disabled_p PARAMS ((const char *)); +static bool builtin_function_disabled_p (const char *); /* Disable a built-in function specified by -fno-builtin-NAME. If NAME begins with "__builtin_", give an error. */ void -disable_builtin_function (name) - const char *name; +disable_builtin_function (const char *name) { if (strncmp (name, "__builtin_", strlen ("__builtin_")) == 0) error ("cannot disable built-in function `%s'", name); @@ -3647,8 +3563,7 @@ disable_builtin_function (name) otherwise. */ static bool -builtin_function_disabled_p (name) - const char *name; +builtin_function_disabled_p (const char *name) { disabled_builtin *p; for (p = disabled_builtins; p != NULL; p = p->next) @@ -3676,17 +3591,10 @@ builtin_function_disabled_p (name) or if NONANSI_P and flag_no_nonansi_builtin. */ static tree -builtin_function_2 (builtin_name, name, builtin_type, type, function_code, - class, library_name_p, nonansi_p, attrs) - const char *builtin_name; - const char *name; - tree builtin_type; - tree type; - int function_code; - enum built_in_class class; - int library_name_p; - int nonansi_p; - tree attrs; +builtin_function_2 (const char *builtin_name, const char *name, + tree builtin_type, tree type, int function_code, + enum built_in_class class, int library_name_p, + int nonansi_p, tree attrs) { tree bdecl = NULL_TREE; tree decl = NULL_TREE; @@ -3706,8 +3614,7 @@ builtin_function_2 (builtin_name, name, builtin_type, type, function_code, integral promotions defined in ISO C99 6.3.1.1/2. */ bool -c_promoting_integer_type_p (t) - tree t; +c_promoting_integer_type_p (tree t) { switch (TREE_CODE (t)) { @@ -3737,8 +3644,7 @@ c_promoting_integer_type_p (t) and none of their types is affected by default promotions. */ int -self_promoting_args_p (parms) - tree parms; +self_promoting_args_p (tree parms) { tree t; for (t = parms; t; t = TREE_CHAIN (t)) @@ -3764,8 +3670,7 @@ self_promoting_args_p (parms) element type is found. */ tree -strip_array_types (type) - tree type; +strip_array_types (tree type) { while (TREE_CODE (type) == ARRAY_TYPE) type = TREE_TYPE (type); @@ -3773,8 +3678,7 @@ strip_array_types (type) return type; } -static tree expand_unordered_cmp PARAMS ((tree, tree, enum tree_code, - enum tree_code)); +static tree expand_unordered_cmp (tree, tree, enum tree_code, enum tree_code); /* Expand a call to an unordered comparison function such as __builtin_isgreater(). FUNCTION is the function's declaration and @@ -3786,9 +3690,9 @@ static tree expand_unordered_cmp PARAMS ((tree, tree, enum tree_code, rest. */ static tree -expand_unordered_cmp (function, params, unordered_code, ordered_code) - tree function, params; - enum tree_code unordered_code, ordered_code; +expand_unordered_cmp (tree function, tree params, + enum tree_code unordered_code, + enum tree_code ordered_code) { tree arg0, arg1, type; enum tree_code code0, code1; @@ -3857,8 +3761,7 @@ expand_unordered_cmp (function, params, unordered_code, ordered_code) where the similar functionality exists in the other front ends. */ tree -expand_tree_builtin (function, params, coerced_params) - tree function, params, coerced_params; +expand_tree_builtin (tree function, tree params, tree coerced_params) { if (DECL_BUILT_IN_CLASS (function) != BUILT_IN_NORMAL) return NULL_TREE; @@ -3932,11 +3835,8 @@ expand_tree_builtin (function, params, coerced_params) We don't need a without_duplicates variant of this one because the statement tree is a tree, not a graph. */ -tree -walk_stmt_tree (tp, func, data) - tree *tp; - walk_tree_fn func; - void *data; +tree +walk_stmt_tree (tree *tp, walk_tree_fn func, void *data) { enum tree_code code; int walk_subtrees; @@ -4001,9 +3901,7 @@ walk_stmt_tree (tp, func, data) K2, and 0 if K1 and K2 are equal. */ int -case_compare (k1, k2) - splay_tree_key k1; - splay_tree_key k2; +case_compare (splay_tree_key k1, splay_tree_key k2) { /* Consider a NULL key (such as arises with a `default' label) to be smaller than anything else. */ @@ -4025,11 +3923,8 @@ case_compare (k1, k2) ERROR_MARK_NODE if no CASE_LABEL is created. */ tree -c_add_case_label (cases, cond, low_value, high_value) - splay_tree cases; - tree cond; - tree low_value; - tree high_value; +c_add_case_label (splay_tree cases, tree cond, tree low_value, + tree high_value) { tree type; tree label; @@ -4051,8 +3946,8 @@ c_add_case_label (cases, cond, low_value, high_value) return error_mark_node; } - if ((low_value && TREE_TYPE (low_value) - && POINTER_TYPE_P (TREE_TYPE (low_value))) + if ((low_value && TREE_TYPE (low_value) + && POINTER_TYPE_P (TREE_TYPE (low_value))) || (high_value && TREE_TYPE (high_value) && POINTER_TYPE_P (TREE_TYPE (high_value)))) error ("pointers are not permitted as case values"); @@ -4091,8 +3986,8 @@ c_add_case_label (cases, cond, low_value, high_value) the HIGH_VALUE to simplify later processing. */ if (tree_int_cst_equal (low_value, high_value)) high_value = NULL_TREE; - if (low_value && high_value - && !tree_int_cst_lt (low_value, high_value)) + if (low_value && high_value + && !tree_int_cst_lt (low_value, high_value)) warning ("empty range specified"); /* Look up the LOW_VALUE in the table of case labels we already @@ -4130,7 +4025,7 @@ c_add_case_label (cases, cond, low_value, high_value) range is bigger than the low end of the current range, so we are only interested if the current range is a real range, and not an ordinary case label. */ - else if (high_bound + else if (high_bound && high_value && (tree_int_cst_compare ((tree) high_bound->key, high_value) @@ -4145,7 +4040,7 @@ c_add_case_label (cases, cond, low_value, high_value) if (high_value) { error ("duplicate (or overlapping) case value"); - error_with_decl (duplicate, + error_with_decl (duplicate, "this is the first entry overlapping that value"); } else if (low_value) @@ -4165,7 +4060,7 @@ c_add_case_label (cases, cond, low_value, high_value) /* Add a CASE_LABEL to the statement-tree. */ case_label = add_stmt (build_case_label (low_value, high_value, label)); /* Register this case label in the splay tree. */ - splay_tree_insert (cases, + splay_tree_insert (cases, (splay_tree_key) low_value, (splay_tree_value) case_label); @@ -4175,9 +4070,8 @@ c_add_case_label (cases, cond, low_value, high_value) /* Finish an expression taking the address of LABEL (an IDENTIFIER_NODE). Returns an expression for the address. */ -tree -finish_label_address_expr (label) - tree label; +tree +finish_label_address_expr (tree label) { tree result; @@ -4211,11 +4105,8 @@ finish_label_address_expr (label) /* Hook used by expand_expr to expand language-specific tree codes. */ rtx -c_expand_expr (exp, target, tmode, modifier) - tree exp; - rtx target; - enum machine_mode tmode; - int modifier; /* Actually enum_modifier. */ +c_expand_expr (tree exp, rtx target, enum machine_mode tmode, int modifier) + /* Actually enum_modifier. */ { switch (TREE_CODE (exp)) { @@ -4293,7 +4184,7 @@ c_expand_expr (exp, target, tmode, modifier) return result; } break; - + case CALL_EXPR: { if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR @@ -4328,14 +4219,12 @@ c_expand_expr (exp, target, tmode, modifier) /* Hook used by safe_from_p to handle language-specific tree codes. */ int -c_safe_from_p (target, exp) - rtx target; - tree exp; +c_safe_from_p (rtx target, tree exp) { /* We can see statements here when processing the body of a statement-expression. For a declaration statement declaring a variable, look at the variable's initializer. */ - if (TREE_CODE (exp) == DECL_STMT) + if (TREE_CODE (exp) == DECL_STMT) { tree decl = DECL_STMT_DECL (exp); @@ -4356,8 +4245,7 @@ c_safe_from_p (target, exp) /* Hook used by unsafe_for_reeval to handle language-specific tree codes. */ int -c_common_unsafe_for_reeval (exp) - tree exp; +c_common_unsafe_for_reeval (tree exp) { /* Statement expressions may not be reevaluated, likewise compound literals. */ @@ -4372,8 +4260,7 @@ c_common_unsafe_for_reeval (exp) /* Hook used by staticp to handle language-specific tree codes. */ int -c_staticp (exp) - tree exp; +c_staticp (tree exp) { if (TREE_CODE (exp) == COMPOUND_LITERAL_EXPR && TREE_STATIC (COMPOUND_LITERAL_EXPR_DECL (exp))) @@ -4385,11 +4272,8 @@ c_staticp (exp) (!strncmp (IDENTIFIER_POINTER (DECL_NAME (NODE)), "__builtin_", 10)) static rtx -c_expand_builtin (exp, target, tmode, modifier) - tree exp; - rtx target; - enum machine_mode tmode; - enum expand_modifier modifier; +c_expand_builtin (tree exp, rtx target, enum machine_mode tmode, + enum expand_modifier modifier) { tree type = TREE_TYPE (exp); tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0); @@ -4449,8 +4333,7 @@ c_expand_builtin (exp, target, tmode, modifier) at the format specifier, with the remaining arguments immediately following it. */ static int -is_valid_printf_arglist (arglist) - tree arglist; +is_valid_printf_arglist (tree arglist) { /* Save this value so we can restore it later. */ const int SAVE_pedantic = pedantic; @@ -4483,13 +4366,9 @@ is_valid_printf_arglist (arglist) /* If the arguments passed to printf are suitable for optimizations, we attempt to transform the call. */ static rtx -c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) - tree arglist; - rtx target; - enum machine_mode tmode; - enum expand_modifier modifier; - int ignore; - int unlocked; +c_expand_builtin_printf (tree arglist, rtx target, enum machine_mode tmode, + enum expand_modifier modifier, int ignore, + int unlocked) { tree fn_putchar = unlocked ? implicit_built_in_decls[BUILT_IN_PUTCHAR_UNLOCKED] : implicit_built_in_decls[BUILT_IN_PUTCHAR]; @@ -4506,11 +4385,11 @@ c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) if (arglist == 0 || (TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) != POINTER_TYPE)) return 0; - + /* Check the specifier vs. the parameters. */ if (!is_valid_printf_arglist (arglist)) return 0; - + format_arg = TREE_VALUE (arglist); stripped_string = format_arg; STRIP_NOPS (stripped_string); @@ -4520,7 +4399,7 @@ c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) /* If the format specifier isn't a STRING_CST, punt. */ if (TREE_CODE (stripped_string) != STRING_CST) return 0; - + /* OK! We can attempt optimization. */ /* If the format specifier was "%s\n", call __builtin_puts(arg2). */ @@ -4540,7 +4419,7 @@ c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) /* We can't handle anything else with % args or %% ... yet. */ if (strchr (TREE_STRING_POINTER (stripped_string), '%')) return 0; - + /* If the resulting constant string has a length of 1, call putchar. Note, TREE_STRING_LENGTH includes the terminating NULL in its count. */ @@ -4551,7 +4430,7 @@ c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) function. */ arglist = build_int_2 (TREE_STRING_POINTER (stripped_string)[0], 0); arglist = build_tree_list (NULL_TREE, arglist); - + fn = fn_putchar; } /* If the resulting constant was "string\n", call @@ -4568,7 +4447,7 @@ c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) char *newstr = (char *) alloca (newlen); memcpy (newstr, TREE_STRING_POINTER (stripped_string), newlen - 1); newstr[newlen - 1] = 0; - + arglist = fix_string_type (build_string (newlen, newstr)); arglist = build_tree_list (NULL_TREE, arglist); fn = fn_puts; @@ -4578,7 +4457,7 @@ c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) need stdout and don't have a way to get it ... yet. */ return 0; } - + return expand_expr (build_function_call (fn, arglist), (ignore ? const0_rtx : target), tmode, modifier); @@ -4587,13 +4466,9 @@ c_expand_builtin_printf (arglist, target, tmode, modifier, ignore, unlocked) /* If the arguments passed to fprintf are suitable for optimizations, we attempt to transform the call. */ static rtx -c_expand_builtin_fprintf (arglist, target, tmode, modifier, ignore, unlocked) - tree arglist; - rtx target; - enum machine_mode tmode; - enum expand_modifier modifier; - int ignore; - int unlocked; +c_expand_builtin_fprintf (tree arglist, rtx target, enum machine_mode tmode, + enum expand_modifier modifier, int ignore, + int unlocked) { tree fn_fputc = unlocked ? implicit_built_in_decls[BUILT_IN_FPUTC_UNLOCKED] : implicit_built_in_decls[BUILT_IN_FPUTC]; @@ -4613,11 +4488,11 @@ c_expand_builtin_fprintf (arglist, target, tmode, modifier, ignore, unlocked) || (TREE_CODE (TREE_TYPE (TREE_VALUE (TREE_CHAIN (arglist)))) != POINTER_TYPE)) return 0; - + /* Check the specifier vs. the parameters. */ if (!is_valid_printf_arglist (TREE_CHAIN (arglist))) return 0; - + format_arg = TREE_VALUE (TREE_CHAIN (arglist)); stripped_string = format_arg; STRIP_NOPS (stripped_string); @@ -4627,7 +4502,7 @@ c_expand_builtin_fprintf (arglist, target, tmode, modifier, ignore, unlocked) /* If the format specifier isn't a STRING_CST, punt. */ if (TREE_CODE (stripped_string) != STRING_CST) return 0; - + /* OK! We can attempt optimization. */ /* If the format specifier was "%s", call __builtin_fputs(arg3, arg1). */ @@ -4653,7 +4528,7 @@ c_expand_builtin_fprintf (arglist, target, tmode, modifier, ignore, unlocked) /* We can't handle anything else with % args or %% ... yet. */ if (strchr (TREE_STRING_POINTER (stripped_string), '%')) return 0; - + /* When "string" doesn't contain %, replace all cases of fprintf(stream,string) with fputs(string,stream). The fputs builtin will take take of special cases like length==1. */ @@ -4661,7 +4536,7 @@ c_expand_builtin_fprintf (arglist, target, tmode, modifier, ignore, unlocked) build_tree_list (NULL_TREE, TREE_VALUE (arglist))); fn = fn_fputs; } - + return expand_expr (build_function_call (fn, arglist), (ignore ? const0_rtx : target), tmode, modifier); @@ -4672,9 +4547,7 @@ c_expand_builtin_fprintf (arglist, target, tmode, modifier, ignore, unlocked) or decrement (as indicated by CODE) of ARG. The front end must check for invalid cases (e.g., decrement in C++). */ tree -boolean_increment (code, arg) - enum tree_code code; - tree arg; +boolean_increment (enum tree_code code, tree arg) { tree val; tree true_res = (c_language == clk_cplusplus @@ -4711,7 +4584,7 @@ boolean_increment (code, arg) /* Built-in macros for stddef.h, that require macros defined in this file. */ void -c_stddef_cpp_builtins() +c_stddef_cpp_builtins(void) { builtin_define_with_value ("__SIZE_TYPE__", SIZE_TYPE, 0); builtin_define_with_value ("__PTRDIFF_TYPE__", PTRDIFF_TYPE, 0); @@ -4720,7 +4593,7 @@ c_stddef_cpp_builtins() } static void -c_init_attributes () +c_init_attributes (void) { /* Fill in the built_in_attributes array. */ #define DEF_ATTR_NULL_TREE(ENUM) \ @@ -4747,8 +4620,7 @@ c_init_attributes () /* Depending on the name of DECL, apply default attributes to it. */ void -c_common_insert_default_attributes (decl) - tree decl; +c_common_insert_default_attributes (tree decl) { tree name = DECL_NAME (decl); @@ -4774,10 +4646,7 @@ c_common_insert_default_attributes (decl) /* Output a -Wshadow warning MSGCODE about NAME, and give the location of the previous declaration DECL. */ void -shadow_warning (msgcode, name, decl) - enum sw_kind msgcode; - const char *name; - tree decl; +shadow_warning (enum sw_kind msgcode, const char *name, tree decl) { static const char *const msgs[] = { /* SW_PARAM */ N_("declaration of \"%s\" shadows a parameter"), @@ -4795,12 +4664,8 @@ shadow_warning (msgcode, name, decl) struct attribute_spec.handler. */ static tree -handle_packed_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags; - bool *no_add_attrs; +handle_packed_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags, _Bool *no_add_attrs) { tree *type = NULL; if (DECL_P (*node)) @@ -4834,12 +4699,9 @@ handle_packed_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_nocommon_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_nocommon_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { if (TREE_CODE (*node) == VAR_DECL) DECL_COMMON (*node) = 0; @@ -4856,12 +4718,8 @@ handle_nocommon_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_common_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_common_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { if (TREE_CODE (*node) == VAR_DECL) DECL_COMMON (*node) = 1; @@ -4878,12 +4736,8 @@ handle_common_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_noreturn_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_noreturn_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree type = TREE_TYPE (*node); @@ -4909,12 +4763,9 @@ handle_noreturn_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_noinline_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_noinline_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { if (TREE_CODE (*node) == FUNCTION_DECL) DECL_UNINLINABLE (*node) = 1; @@ -4931,12 +4782,10 @@ handle_noinline_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_always_inline_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_always_inline_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { if (TREE_CODE (*node) == FUNCTION_DECL) { @@ -4956,12 +4805,8 @@ handle_always_inline_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_used_attribute (pnode, name, args, flags, no_add_attrs) - tree *pnode; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_used_attribute (tree *pnode, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree node = *pnode; @@ -4982,12 +4827,8 @@ handle_used_attribute (pnode, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_unused_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags; - bool *no_add_attrs; +handle_unused_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { if (DECL_P (*node)) { @@ -5019,12 +4860,8 @@ handle_unused_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_const_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_const_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree type = TREE_TYPE (*node); @@ -5050,12 +4887,9 @@ handle_const_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_transparent_union_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags; - bool *no_add_attrs; +handle_transparent_union_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, int flags, + _Bool *no_add_attrs) { tree decl = NULL_TREE; tree *type = NULL; @@ -5097,12 +4931,10 @@ handle_transparent_union_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_constructor_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_constructor_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { tree decl = *node; tree type = TREE_TYPE (decl); @@ -5127,12 +4959,10 @@ handle_constructor_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_destructor_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_destructor_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { tree decl = *node; tree type = TREE_TYPE (decl); @@ -5157,12 +4987,8 @@ handle_destructor_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_mode_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_mode_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree type = *node; @@ -5246,12 +5072,8 @@ handle_mode_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_section_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name ATTRIBUTE_UNUSED; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_section_attribute (tree *node, tree name ATTRIBUTE_UNUSED, tree args, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree decl = *node; @@ -5304,12 +5126,8 @@ handle_section_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_aligned_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name ATTRIBUTE_UNUSED; - tree args; - int flags; - bool *no_add_attrs; +handle_aligned_attribute (tree *node, tree name ATTRIBUTE_UNUSED, tree args, + int flags, _Bool *no_add_attrs) { tree decl = NULL_TREE; tree *type = NULL; @@ -5388,12 +5206,10 @@ handle_aligned_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_weak_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name ATTRIBUTE_UNUSED; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs ATTRIBUTE_UNUSED; +handle_weak_attribute (tree *node, tree name ATTRIBUTE_UNUSED, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs ATTRIBUTE_UNUSED) { declare_weak (*node); @@ -5404,12 +5220,8 @@ handle_weak_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_alias_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_alias_attribute (tree *node, tree name, tree args, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree decl = *node; @@ -5453,12 +5265,9 @@ handle_alias_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_visibility_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_visibility_attribute (tree *node, tree name, tree args, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { tree decl = *node; @@ -5496,12 +5305,8 @@ handle_visibility_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_tls_model_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_tls_model_attribute (tree *node, tree name, tree args, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree decl = *node; @@ -5539,12 +5344,10 @@ handle_tls_model_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_no_instrument_function_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_no_instrument_function_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { tree decl = *node; @@ -5572,12 +5375,8 @@ handle_no_instrument_function_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_malloc_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_malloc_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { if (TREE_CODE (*node) == FUNCTION_DECL) DECL_IS_MALLOC (*node) = 1; @@ -5595,12 +5394,10 @@ handle_malloc_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_no_limit_stack_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_no_limit_stack_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { tree decl = *node; @@ -5628,12 +5425,8 @@ handle_no_limit_stack_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_pure_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_pure_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { if (TREE_CODE (*node) == FUNCTION_DECL) DECL_IS_PURE (*node) = 1; @@ -5649,24 +5442,21 @@ handle_pure_attribute (node, name, args, flags, no_add_attrs) /* Handle a "deprecated" attribute; arguments as in struct attribute_spec.handler. */ - + static tree -handle_deprecated_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags; - bool *no_add_attrs; +handle_deprecated_attribute (tree *node, tree name, + tree args ATTRIBUTE_UNUSED, int flags, + _Bool *no_add_attrs) { tree type = NULL_TREE; int warn = 0; const char *what = NULL; - + if (DECL_P (*node)) { tree decl = *node; type = TREE_TYPE (decl); - + if (TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == PARM_DECL || TREE_CODE (decl) == VAR_DECL @@ -5685,7 +5475,7 @@ handle_deprecated_attribute (node, name, args, flags, no_add_attrs) } else warn = 1; - + if (warn) { *no_add_attrs = true; @@ -5701,7 +5491,7 @@ handle_deprecated_attribute (node, name, args, flags, no_add_attrs) warning ("`%s' attribute ignored for `%s'", IDENTIFIER_POINTER (name), what); else - warning ("`%s' attribute ignored", + warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name)); } @@ -5719,12 +5509,9 @@ static GTY(()) tree vector_type_node_list = 0; struct attribute_spec.handler. */ static tree -handle_vector_size_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_vector_size_attribute (tree *node, tree name, tree args, + int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { unsigned HOST_WIDE_INT vecsize, nunits; enum machine_mode mode, orig_mode, new_mode; @@ -5870,8 +5657,7 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs) new type which we will point to. */ static tree -vector_size_helper (type, bottom) - tree type, bottom; +vector_size_helper (tree type, tree bottom) { tree inner, outer; @@ -5892,7 +5678,7 @@ vector_size_helper (type, bottom) } else return bottom; - + TREE_READONLY (outer) = TREE_READONLY (type); TREE_THIS_VOLATILE (outer) = TREE_THIS_VOLATILE (type); @@ -5901,12 +5687,9 @@ vector_size_helper (type, bottom) /* Handle the "nonnull" attribute. */ static tree -handle_nonnull_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name ATTRIBUTE_UNUSED; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_nonnull_attribute (tree *node, tree name ATTRIBUTE_UNUSED, + tree args, int flags ATTRIBUTE_UNUSED, + _Bool *no_add_attrs) { tree type = *node; unsigned HOST_WIDE_INT attr_arg_num; @@ -5975,9 +5758,7 @@ handle_nonnull_attribute (node, name, args, flags, no_add_attrs) that are marked as requiring a non-null pointer argument. */ static void -check_function_nonnull (attrs, params) - tree attrs; - tree params; +check_function_nonnull (tree attrs, tree params) { tree a, args, param; int param_num; @@ -5996,11 +5777,11 @@ check_function_nonnull (attrs, params) param_num++, param = TREE_CHAIN (param)) { if (! param) - break; + break; if (! args || nonnull_check_p (args, param_num)) - check_function_arguments_recurse (check_nonnull_arg, NULL, - TREE_VALUE (param), - param_num); + check_function_arguments_recurse (check_nonnull_arg, NULL, + TREE_VALUE (param), + param_num); } } } @@ -6011,9 +5792,7 @@ check_function_nonnull (attrs, params) checked. */ static bool -nonnull_check_p (args, param_num) - tree args; - unsigned HOST_WIDE_INT param_num; +nonnull_check_p (tree args, unsigned HOST_WIDE_INT param_num) { unsigned HOST_WIDE_INT arg_num; @@ -6033,10 +5812,8 @@ nonnull_check_p (args, param_num) via check_function_arguments_recurse. */ static void -check_nonnull_arg (ctx, param, param_num) - void *ctx ATTRIBUTE_UNUSED; - tree param; - unsigned HOST_WIDE_INT param_num; +check_nonnull_arg (void *ctx ATTRIBUTE_UNUSED, tree param, + unsigned HOST_WIDE_INT param_num) { /* Just skip checking the argument if it's not a pointer. This can happen if the "nonnull" attribute was given without an operand @@ -6054,9 +5831,7 @@ check_nonnull_arg (ctx, param, param_num) from the attribute argument list. */ static bool -get_nonnull_operand (arg_num_expr, valp) - tree arg_num_expr; - unsigned HOST_WIDE_INT *valp; +get_nonnull_operand (tree arg_num_expr, unsigned HOST_WIDE_INT *valp) { /* Strip any conversions from the arg number and verify they are constants. */ @@ -6077,12 +5852,8 @@ get_nonnull_operand (arg_num_expr, valp) struct attribute_spec.handler. */ static tree -handle_nothrow_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args ATTRIBUTE_UNUSED; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_nothrow_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { if (TREE_CODE (*node) == FUNCTION_DECL) TREE_NOTHROW (*node) = 1; @@ -6100,12 +5871,8 @@ handle_nothrow_attribute (node, name, args, flags, no_add_attrs) struct attribute_spec.handler. */ static tree -handle_cleanup_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name; - tree args; - int flags ATTRIBUTE_UNUSED; - bool *no_add_attrs; +handle_cleanup_attribute (tree *node, tree name, tree args, + int flags ATTRIBUTE_UNUSED, _Bool *no_add_attrs) { tree decl = *node; tree cleanup_id, cleanup_decl; @@ -6139,7 +5906,7 @@ handle_cleanup_attribute (node, name, args, flags, no_add_attrs) return NULL_TREE; } - /* That the function has proper type is checked with the + /* That the function has proper type is checked with the eventual call to build_function_call. */ return NULL_TREE; @@ -6147,9 +5914,7 @@ handle_cleanup_attribute (node, name, args, flags, no_add_attrs) /* Check for valid arguments being passed to a function. */ void -check_function_arguments (attrs, params) - tree attrs; - tree params; +check_function_arguments (tree attrs, tree params) { /* Check for null being passed in a pointer argument that must be non-null. We also need to do this if format checking is enabled. */ @@ -6167,11 +5932,10 @@ check_function_arguments (attrs, params) be checked. PARAM_NUM is the number of the argument. CALLBACK is invoked once the argument is resolved. CTX is context for the callback. */ void -check_function_arguments_recurse (callback, ctx, param, param_num) - void (*callback) PARAMS ((void *, tree, unsigned HOST_WIDE_INT)); - void *ctx; - tree param; - unsigned HOST_WIDE_INT param_num; +check_function_arguments_recurse (void (*callback) + (void *, tree, unsigned HOST_WIDE_INT), + void *ctx, tree param, + unsigned HOST_WIDE_INT param_num) { if (TREE_CODE (param) == NOP_EXPR) { diff --git a/gcc/c-common.h b/gcc/c-common.h index b458afc..8ec8ddc 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -305,38 +305,35 @@ struct c_language_function GTY(()) { /* Language-specific hooks. */ -extern void (*lang_expand_stmt) PARAMS ((tree)); -extern void (*lang_expand_decl_stmt) PARAMS ((tree)); -extern void (*lang_expand_function_end) PARAMS ((void)); -extern tree gettags PARAMS ((void)); +extern void (*lang_expand_stmt) (tree); +extern void (*lang_expand_decl_stmt) (tree); +extern void (*lang_expand_function_end) (void); +extern tree gettags (void); /* Callback that determines if it's ok for a function to have no noreturn attribute. */ -extern int (*lang_missing_noreturn_ok_p) PARAMS ((tree)); - -extern int yyparse PARAMS ((void)); -extern void free_parser_stacks PARAMS ((void)); - -extern stmt_tree current_stmt_tree PARAMS ((void)); -extern tree *current_scope_stmt_stack PARAMS ((void)); -extern void begin_stmt_tree PARAMS ((tree *)); -extern tree add_stmt PARAMS ((tree)); -extern void add_decl_stmt PARAMS ((tree)); -extern tree add_scope_stmt PARAMS ((int, int)); -extern void finish_stmt_tree PARAMS ((tree *)); - -extern tree walk_stmt_tree PARAMS ((tree *, - walk_tree_fn, - void *)); -extern void prep_stmt PARAMS ((tree)); -extern void expand_stmt PARAMS ((tree)); -extern tree c_begin_if_stmt PARAMS ((void)); -extern tree c_begin_while_stmt PARAMS ((void)); -extern void c_finish_while_stmt_cond PARAMS ((tree, tree)); +extern int (*lang_missing_noreturn_ok_p) (tree); + +extern int yyparse (void); +extern void free_parser_stacks (void); + +extern stmt_tree current_stmt_tree (void); +extern tree *current_scope_stmt_stack (void); +extern void begin_stmt_tree (tree *); +extern tree add_stmt (tree); +extern void add_decl_stmt (tree); +extern tree add_scope_stmt (int, int); +extern void finish_stmt_tree (tree *); + +extern tree walk_stmt_tree (tree *, walk_tree_fn, void *); +extern void prep_stmt (tree); +extern void expand_stmt (tree); +extern tree c_begin_if_stmt (void); +extern tree c_begin_while_stmt (void); +extern void c_finish_while_stmt_cond (tree, tree); enum sw_kind { SW_PARAM = 0, SW_LOCAL, SW_GLOBAL }; -extern void shadow_warning PARAMS ((enum sw_kind, - const char *, tree)); +extern void shadow_warning (enum sw_kind, const char *, tree); /* Extra information associated with a DECL. Other C dialects extend this structure in various ways. The C front-end only uses this @@ -876,66 +873,62 @@ extern const struct attribute_spec c_common_format_attribute_table[]; TYPE_DEP indicates whether it depends on type of the function or not (i.e. __PRETTY_FUNCTION__). */ -extern tree (*make_fname_decl) PARAMS ((tree, int)); - -extern tree identifier_global_value PARAMS ((tree)); -extern void record_builtin_type PARAMS ((enum rid, - const char *, tree)); -extern tree build_void_list_node PARAMS ((void)); -extern void start_fname_decls PARAMS ((void)); -extern void finish_fname_decls PARAMS ((void)); -extern const char *fname_as_string PARAMS ((int)); -extern tree fname_decl PARAMS ((unsigned, tree)); -extern const char *fname_string PARAMS ((unsigned)); - -extern void check_function_arguments PARAMS ((tree, tree)); -extern void check_function_arguments_recurse PARAMS ((void (*) (void *, - tree, - unsigned HOST_WIDE_INT), - void *, tree, - unsigned HOST_WIDE_INT)); -extern void check_function_format PARAMS ((int *, tree, tree)); -extern void set_Wformat PARAMS ((int)); -extern tree handle_format_attribute PARAMS ((tree *, tree, tree, - int, bool *)); -extern tree handle_format_arg_attribute PARAMS ((tree *, tree, tree, - int, bool *)); -extern void c_common_insert_default_attributes PARAMS ((tree)); +extern tree (*make_fname_decl) (tree, int); + +extern tree identifier_global_value (tree); +extern void record_builtin_type (enum rid, const char *, tree); +extern tree build_void_list_node (void); +extern void start_fname_decls (void); +extern void finish_fname_decls (void); +extern const char *fname_as_string (int); +extern tree fname_decl (unsigned, tree); +extern const char *fname_string (unsigned); + +extern void check_function_arguments (tree, tree); +extern void check_function_arguments_recurse (void (*) + (void *, tree, + unsigned HOST_WIDE_INT), + void *, tree, + unsigned HOST_WIDE_INT); +extern void check_function_format (int *, tree, tree); +extern void set_Wformat (int); +extern tree handle_format_attribute (tree *, tree, tree, int, bool *); +extern tree handle_format_arg_attribute (tree *, tree, tree, int, bool *); +extern void c_common_insert_default_attributes (tree); extern int c_common_handle_option (size_t code, const char *arg, int value); -extern tree c_common_type_for_mode PARAMS ((enum machine_mode, - int)); -extern tree c_common_type_for_size PARAMS ((unsigned int, int)); -extern tree c_common_unsigned_type PARAMS ((tree)); -extern tree c_common_signed_type PARAMS ((tree)); -extern tree c_common_signed_or_unsigned_type PARAMS ((int, tree)); -extern tree c_common_truthvalue_conversion PARAMS ((tree)); -extern void c_apply_type_quals_to_decl PARAMS ((int, tree)); -extern tree c_sizeof_or_alignof_type PARAMS ((tree, enum tree_code, int)); -extern tree c_alignof_expr PARAMS ((tree)); +extern tree c_common_type_for_mode (enum machine_mode, int); +extern tree c_common_type_for_size (unsigned int, int); +extern tree c_common_unsigned_type (tree); +extern tree c_common_signed_type (tree); +extern tree c_common_signed_or_unsigned_type (int, tree); +extern tree c_common_truthvalue_conversion (tree); +extern void c_apply_type_quals_to_decl (int, tree); +extern tree c_sizeof_or_alignof_type (tree, enum tree_code, int); +extern tree c_alignof_expr (tree); /* Print an error message for invalid operands to arith operation CODE. NOP_EXPR is used as a special case (see truthvalue_conversion). */ -extern void binary_op_error PARAMS ((enum tree_code)); +extern void binary_op_error (enum tree_code); #define my_friendly_assert(EXP, N) (void) \ (((EXP) == 0) ? (fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0) : 0) -extern tree c_expand_expr_stmt PARAMS ((tree)); -extern void c_expand_start_cond PARAMS ((tree, int, tree)); -extern void c_finish_then PARAMS ((void)); -extern void c_expand_start_else PARAMS ((void)); -extern void c_finish_else PARAMS ((void)); -extern void c_expand_end_cond PARAMS ((void)); +extern tree c_expand_expr_stmt (tree); +extern void c_expand_start_cond (tree, int, tree); +extern void c_finish_then (void); +extern void c_expand_start_else (void); +extern void c_finish_else (void); +extern void c_expand_end_cond (void); /* Validate the expression after `case' and apply default promotions. */ -extern tree check_case_value PARAMS ((tree)); -extern tree fix_string_type PARAMS ((tree)); +extern tree check_case_value (tree); +extern tree fix_string_type (tree); struct varray_head_tag; -extern tree combine_strings PARAMS ((struct varray_head_tag *)); -extern void constant_expression_warning PARAMS ((tree)); -extern tree convert_and_check PARAMS ((tree, tree)); -extern void overflow_warning PARAMS ((tree)); -extern void unsigned_conversion_warning PARAMS ((tree, tree)); +extern tree combine_strings (struct varray_head_tag *); +extern void constant_expression_warning (tree); +extern tree convert_and_check (tree, tree); +extern void overflow_warning (tree); +extern void unsigned_conversion_warning (tree, tree); /* Read the rest of the current #-directive line. */ -extern char *get_directive_line PARAMS ((void)); +extern char *get_directive_line (void); #define GET_DIRECTIVE_LINE() get_directive_line () #define c_sizeof(T) c_sizeof_or_alignof_type (T, SIZEOF_EXPR, 1) #define c_alignof(T) c_sizeof_or_alignof_type (T, ALIGNOF_EXPR, 1) @@ -943,31 +936,31 @@ extern char *get_directive_line PARAMS ((void)); /* Subroutine of build_binary_op, used for comparison operations. See if the operands have both been converted from subword integer types and, if so, perhaps change them both back to their original type. */ -extern tree shorten_compare PARAMS ((tree *, tree *, tree *, enum tree_code *)); +extern tree shorten_compare (tree *, tree *, tree *, enum tree_code *); -extern tree pointer_int_sum PARAMS ((enum tree_code, tree, tree)); -extern unsigned int min_precision PARAMS ((tree, int)); +extern tree pointer_int_sum (enum tree_code, tree, tree); +extern unsigned int min_precision (tree, int); /* Add qualifiers to a type, in the fashion for C. */ -extern tree c_build_qualified_type PARAMS ((tree, int)); +extern tree c_build_qualified_type (tree, int); /* Build tree nodes and builtin functions common to both C and C++ language frontends. */ -extern void c_common_nodes_and_builtins PARAMS ((void)); +extern void c_common_nodes_and_builtins (void); -extern void disable_builtin_function PARAMS ((const char *)); +extern void disable_builtin_function (const char *); -extern tree build_va_arg PARAMS ((tree, tree)); +extern tree build_va_arg (tree, tree); -extern int c_common_init_options PARAMS ((enum c_language_kind)); -extern bool c_common_post_options PARAMS ((const char **)); -extern bool c_common_init PARAMS ((void)); -extern void c_common_finish PARAMS ((void)); -extern void c_common_parse_file PARAMS ((int)); -extern HOST_WIDE_INT c_common_get_alias_set PARAMS ((tree)); -extern bool c_promoting_integer_type_p PARAMS ((tree)); -extern int self_promoting_args_p PARAMS ((tree)); -extern tree strip_array_types PARAMS ((tree)); +extern int c_common_init_options (enum c_language_kind); +extern bool c_common_post_options (const char **); +extern bool c_common_init (void); +extern void c_common_finish (void); +extern void c_common_parse_file (int); +extern HOST_WIDE_INT c_common_get_alias_set (tree); +extern bool c_promoting_integer_type_p (tree); +extern int self_promoting_args_p (tree); +extern tree strip_array_types (tree); /* These macros provide convenient access to the various _STMT nodes. */ @@ -1172,28 +1165,26 @@ extern bool statement_code_p[MAX_TREE_CODES]; statement_code_p[STMT_CODES[i]] = true; \ } while (0) -extern void genrtl_do_pushlevel PARAMS ((void)); -extern void genrtl_goto_stmt PARAMS ((tree)); -extern void genrtl_expr_stmt PARAMS ((tree)); -extern void genrtl_expr_stmt_value PARAMS ((tree, int, int)); -extern void genrtl_decl_stmt PARAMS ((tree)); -extern void genrtl_if_stmt PARAMS ((tree)); -extern void genrtl_while_stmt PARAMS ((tree)); -extern void genrtl_do_stmt PARAMS ((tree)); -extern void genrtl_return_stmt PARAMS ((tree)); -extern void genrtl_for_stmt PARAMS ((tree)); -extern void genrtl_break_stmt PARAMS ((void)); -extern void genrtl_continue_stmt PARAMS ((void)); -extern void genrtl_scope_stmt PARAMS ((tree)); -extern void genrtl_switch_stmt PARAMS ((tree)); -extern void genrtl_case_label PARAMS ((tree)); -extern void genrtl_compound_stmt PARAMS ((tree)); -extern void genrtl_asm_stmt PARAMS ((tree, tree, - tree, tree, - tree, int)); -extern void genrtl_cleanup_stmt PARAMS ((tree)); -extern int stmts_are_full_exprs_p PARAMS ((void)); -extern int anon_aggr_type_p PARAMS ((tree)); +extern void genrtl_do_pushlevel (void); +extern void genrtl_goto_stmt (tree); +extern void genrtl_expr_stmt (tree); +extern void genrtl_expr_stmt_value (tree, int, int); +extern void genrtl_decl_stmt (tree); +extern void genrtl_if_stmt (tree); +extern void genrtl_while_stmt (tree); +extern void genrtl_do_stmt (tree); +extern void genrtl_return_stmt (tree); +extern void genrtl_for_stmt (tree); +extern void genrtl_break_stmt (void); +extern void genrtl_continue_stmt (void); +extern void genrtl_scope_stmt (tree); +extern void genrtl_switch_stmt (tree); +extern void genrtl_case_label (tree); +extern void genrtl_compound_stmt (tree); +extern void genrtl_asm_stmt (tree, tree, tree, tree, tree, int); +extern void genrtl_cleanup_stmt (tree); +extern int stmts_are_full_exprs_p (void); +extern int anon_aggr_type_p (tree); /* For a VAR_DECL that is an anonymous union, these are the various sub-variables that make up the anonymous union. */ @@ -1211,16 +1202,16 @@ extern int anon_aggr_type_p PARAMS ((tree)); an explicit asm specification. */ #define DECL_C_HARD_REGISTER(DECL) DECL_LANG_FLAG_4 (VAR_DECL_CHECK (DECL)) -extern void emit_local_var PARAMS ((tree)); -extern void make_rtl_for_local_static PARAMS ((tree)); -extern tree expand_cond PARAMS ((tree)); -extern tree c_expand_return PARAMS ((tree)); -extern tree do_case PARAMS ((tree, tree)); -extern tree build_stmt PARAMS ((enum tree_code, ...)); -extern tree build_case_label PARAMS ((tree, tree, tree)); -extern tree build_continue_stmt PARAMS ((void)); -extern tree build_break_stmt PARAMS ((void)); -extern tree build_return_stmt PARAMS ((tree)); +extern void emit_local_var (tree); +extern void make_rtl_for_local_static (tree); +extern tree expand_cond (tree); +extern tree c_expand_return (tree); +extern tree do_case (tree, tree); +extern tree build_stmt (enum tree_code, ...); +extern tree build_case_label (tree, tree, tree); +extern tree build_continue_stmt (void); +extern tree build_break_stmt (void); +extern tree build_return_stmt (tree); #define COMPOUND_STMT_NO_SCOPE(NODE) TREE_LANG_FLAG_0 (NODE) @@ -1228,63 +1219,55 @@ extern tree build_return_stmt PARAMS ((tree)); initializers and cleanups. */ #define COMPOUND_STMT_BODY_BLOCK(NODE) TREE_LANG_FLAG_3 (NODE) -extern void c_expand_asm_operands PARAMS ((tree, tree, tree, tree, int, const char *, int)); +extern void c_expand_asm_operands (tree, tree, tree, tree, int, const char *, int); /* These functions must be defined by each front-end which implements a variant of the C language. They are used in c-common.c. */ -extern tree build_unary_op PARAMS ((enum tree_code, - tree, int)); -extern tree build_binary_op PARAMS ((enum tree_code, - tree, tree, int)); -extern int lvalue_p PARAMS ((tree)); -extern tree default_conversion PARAMS ((tree)); +extern tree build_unary_op (enum tree_code, tree, int); +extern tree build_binary_op (enum tree_code, tree, tree, int); +extern int lvalue_p (tree); +extern tree default_conversion (tree); /* Given two integer or real types, return the type for their sum. Given two compatible ANSI C types, returns the merged type. */ -extern tree common_type PARAMS ((tree, tree)); +extern tree common_type (tree, tree); -extern tree expand_tree_builtin PARAMS ((tree, tree, tree)); +extern tree expand_tree_builtin (tree, tree, tree); -extern tree decl_constant_value PARAMS ((tree)); +extern tree decl_constant_value (tree); /* Handle increment and decrement of boolean types. */ -extern tree boolean_increment PARAMS ((enum tree_code, - tree)); +extern tree boolean_increment (enum tree_code, tree); /* Hook currently used only by the C++ front end to reset internal state after entering or leaving a header file. */ -extern void extract_interface_info PARAMS ((void)); +extern void extract_interface_info (void); -extern int case_compare PARAMS ((splay_tree_key, - splay_tree_key)); +extern int case_compare (splay_tree_key, splay_tree_key); -extern tree c_add_case_label PARAMS ((splay_tree, - tree, tree, - tree)); +extern tree c_add_case_label (splay_tree, tree, tree, tree); -extern tree build_function_call PARAMS ((tree, tree)); +extern tree build_function_call (tree, tree); -extern tree finish_label_address_expr PARAMS ((tree)); +extern tree finish_label_address_expr (tree); /* Same function prototype, but the C and C++ front ends have different implementations. Used in c-common.c. */ -extern tree lookup_label PARAMS ((tree)); +extern tree lookup_label (tree); -extern rtx c_expand_expr PARAMS ((tree, rtx, - enum machine_mode, - int)); +extern rtx c_expand_expr (tree, rtx, enum machine_mode, int); -extern int c_safe_from_p PARAMS ((rtx, tree)); +extern int c_safe_from_p (rtx, tree); -extern int c_staticp PARAMS ((tree)); +extern int c_staticp (tree); -extern int c_common_unsafe_for_reeval PARAMS ((tree)); +extern int c_common_unsafe_for_reeval (tree); -extern void init_c_lex PARAMS ((void)); +extern void init_c_lex (void); -extern void c_cpp_builtins PARAMS ((cpp_reader *)); +extern void c_cpp_builtins (cpp_reader *); /* Positive if an implicit `extern "C"' scope has just been entered; negative if such a scope has just been exited. */ @@ -1299,28 +1282,23 @@ struct c_fileinfo short interface_unknown; }; -struct c_fileinfo *get_fileinfo PARAMS ((const char *)); -extern void dump_time_statistics PARAMS ((void)); - -extern bool c_dump_tree PARAMS ((void *, tree)); - -extern void pch_init PARAMS ((void)); -extern int c_common_valid_pch PARAMS ((cpp_reader *pfile, - const char *name, - int fd)); -extern void c_common_read_pch PARAMS ((cpp_reader *pfile, - const char *name, - int fd, - const char *orig)); -extern void c_common_write_pch PARAMS ((void)); -extern void builtin_define_with_value PARAMS ((const char *, - const char *, int)); -extern void c_stddef_cpp_builtins PARAMS ((void)); -extern void fe_file_change PARAMS ((const struct line_map *)); +struct c_fileinfo *get_fileinfo (const char *); +extern void dump_time_statistics (void); + +extern bool c_dump_tree (void *, tree); + +extern void pch_init (void); +extern int c_common_valid_pch (cpp_reader *pfile, const char *name, int fd); +extern void c_common_read_pch (cpp_reader *pfile, const char *name, int fd, + const char *orig); +extern void c_common_write_pch (void); +extern void builtin_define_with_value (const char *, const char *, int); +extern void c_stddef_cpp_builtins (void); +extern void fe_file_change (const struct line_map *); /* In c-ppoutput.c */ -extern void init_pp_output PARAMS ((FILE *)); -extern void preprocess_file PARAMS ((cpp_reader *)); -extern void pp_file_change PARAMS ((const struct line_map *)); +extern void init_pp_output (FILE *); +extern void preprocess_file (cpp_reader *); +extern void pp_file_change (const struct line_map *); #endif /* ! GCC_C_COMMON_H */ diff --git a/gcc/c-convert.c b/gcc/c-convert.c index 3c0a21a..ce095ac 100644 --- a/gcc/c-convert.c +++ b/gcc/c-convert.c @@ -1,5 +1,6 @@ /* Language-level data type conversion for GNU C. - Copyright (C) 1987, 1988, 1991, 1998, 2002 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1991, 1998, 2002, 2003 + Free Software Foundation, Inc. This file is part of GCC. @@ -62,8 +63,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA not permitted by the language being compiled. */ tree -convert (type, expr) - tree type, expr; +convert (tree type, tree expr) { tree e = expr; enum tree_code code = TREE_CODE (type); diff --git a/gcc/c-cppbuiltin.c b/gcc/c-cppbuiltin.c index b17b469..1dfc5d0 100644 --- a/gcc/c-cppbuiltin.c +++ b/gcc/c-cppbuiltin.c @@ -45,35 +45,29 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #endif /* Non-static as some targets don't use it. */ -void builtin_define_std PARAMS ((const char *)) ATTRIBUTE_UNUSED; -static void builtin_define_with_value_n PARAMS ((const char *, const char *, - size_t)); -static void builtin_define_with_int_value PARAMS ((const char *, - HOST_WIDE_INT)); -static void builtin_define_with_hex_fp_value PARAMS ((const char *, tree, - int, const char *, - const char *)); -static void builtin_define_type_max PARAMS ((const char *, tree, int)); -static void builtin_define_type_precision PARAMS ((const char *, tree)); -static void builtin_define_float_constants PARAMS ((const char *, - const char *, tree)); -static void define__GNUC__ PARAMS ((void)); +void builtin_define_std (const char *) ATTRIBUTE_UNUSED; +static void builtin_define_with_value_n (const char *, const char *, + size_t); +static void builtin_define_with_int_value (const char *, HOST_WIDE_INT); +static void builtin_define_with_hex_fp_value (const char *, tree, + int, const char *, + const char *); +static void builtin_define_type_max (const char *, tree, int); +static void builtin_define_type_precision (const char *, tree); +static void builtin_define_float_constants (const char *, const char *, + tree); +static void define__GNUC__ (void); /* Define NAME with value TYPE precision. */ static void -builtin_define_type_precision (name, type) - const char *name; - tree type; +builtin_define_type_precision (const char *name, tree type) { builtin_define_with_int_value (name, TYPE_PRECISION (type)); } /* Define the float.h constants for TYPE using NAME_PREFIX and FP_SUFFIX. */ static void -builtin_define_float_constants (name_prefix, fp_suffix, type) - const char *name_prefix; - const char *fp_suffix; - tree type; +builtin_define_float_constants (const char *name_prefix, const char *fp_suffix, tree type) { /* Used to convert radix-based values to base 10 values in several cases. @@ -107,7 +101,7 @@ builtin_define_float_constants (name_prefix, fp_suffix, type) p radix b digits and back again without change to the q decimal digits, p log10 b if b is a power of 10 - floor((p - 1) log10 b) otherwise + floor((p - 1) log10 b) otherwise */ dig = (fmt->p - 1) * log10_b; sprintf (name, "__%s_DIG__", name_prefix); @@ -166,7 +160,7 @@ builtin_define_float_constants (name_prefix, fp_suffix, type) /* The number of decimal digits, n, such that any floating-point number can be rounded to n decimal digits and back again without change to - the value. + the value. p * log10(b) if b is a power of 10 ceil(1 + p * log10(b)) otherwise @@ -233,7 +227,7 @@ builtin_define_float_constants (name_prefix, fp_suffix, type) /* For C++ std::numeric_limits::has_infinity. */ sprintf (name, "__%s_HAS_INFINITY__", name_prefix); - builtin_define_with_int_value (name, + builtin_define_with_int_value (name, MODE_HAS_INFINITIES (TYPE_MODE (type))); /* For C++ std::numeric_limits::has_quiet_NaN. We do not have a predicate to distinguish a target that has both quiet and @@ -246,7 +240,7 @@ builtin_define_float_constants (name_prefix, fp_suffix, type) /* Define __GNUC__, __GNUC_MINOR__ and __GNUC_PATCHLEVEL__. */ static void -define__GNUC__ () +define__GNUC__ (void) { /* The format of the version string, enforced below, is ([^0-9]*-)?[0-9]+[.][0-9]+([.][0-9]+)?([- ].*)? */ @@ -289,8 +283,7 @@ define__GNUC__ () /* Hook that registers front end and target-specific built-ins. */ void -c_cpp_builtins (pfile) - cpp_reader *pfile; +c_cpp_builtins (cpp_reader *pfile) { /* -undef turns off target-specific built-ins. */ if (flag_undef) @@ -357,7 +350,7 @@ c_cpp_builtins (pfile) cpp_define (pfile, "_LP64"); cpp_define (pfile, "__LP64__"); } - + /* Other target-independent built-ins determined by command-line options. */ if (optimize_size) @@ -410,8 +403,7 @@ c_cpp_builtins (pfile) "unix". Passing "_mips" defines "__mips", "__mips__" and possibly "_mips". */ void -builtin_define_std (macro) - const char *macro; +builtin_define_std (const char *macro) { size_t len = strlen (macro); char *buff = alloca (len + 5); @@ -450,10 +442,7 @@ builtin_define_std (macro) parameter says whether or not to turn the value into a string constant. */ void -builtin_define_with_value (macro, expansion, is_str) - const char *macro; - const char *expansion; - int is_str; +builtin_define_with_value (const char *macro, const char *expansion, int is_str) { char *buf; size_t mlen = strlen (macro); @@ -475,14 +464,11 @@ builtin_define_with_value (macro, expansion, is_str) /* Pass an object-like macro and a value to define it to. The third parameter is the length of the expansion. */ static void -builtin_define_with_value_n (macro, expansion, elen) - const char *macro; - const char *expansion; - size_t elen; +builtin_define_with_value_n (const char *macro, const char *expansion, size_t elen) { char *buf; size_t mlen = strlen (macro); - + /* Space for an = and a NUL. */ buf = alloca (mlen + elen + 2); memcpy (buf, macro, mlen); @@ -495,9 +481,7 @@ builtin_define_with_value_n (macro, expansion, elen) /* Pass an object-like macro and an integer value to define it to. */ static void -builtin_define_with_int_value (macro, value) - const char *macro; - HOST_WIDE_INT value; +builtin_define_with_int_value (const char *macro, HOST_WIDE_INT value) { char *buf; size_t mlen = strlen (macro); @@ -514,12 +498,9 @@ builtin_define_with_int_value (macro, value) /* Pass an object-like macro a hexadecimal floating-point value. */ static void -builtin_define_with_hex_fp_value (macro, type, digits, hex_str, fp_suffix) - const char *macro; - tree type ATTRIBUTE_UNUSED; - int digits; - const char *hex_str; - const char *fp_suffix; +builtin_define_with_hex_fp_value (const char *macro, + tree type ATTRIBUTE_UNUSED, int digits, + const char *hex_str, const char *fp_suffix) { REAL_VALUE_TYPE real; char dec_str[64], buf[256]; @@ -530,7 +511,7 @@ builtin_define_with_hex_fp_value (macro, type, digits, hex_str, fp_suffix) pedwarn from the preprocessor, which has no context, so we can't suppress the warning with __extension__. - So instead what we do is construct the number in hex (because + So instead what we do is construct the number in hex (because it's easy to get the exact correct value), parse it as a real, then print it back out as decimal. */ @@ -546,10 +527,7 @@ builtin_define_with_hex_fp_value (macro, type, digits, hex_str, fp_suffix) unsigned types, since wchar_t might be unsigned. */ static void -builtin_define_type_max (macro, type, is_long) - const char *macro; - tree type; - int is_long; +builtin_define_type_max (const char *macro, tree type, int is_long) { static const char *const values[] = { "127", "255", diff --git a/gcc/c-decl.c b/gcc/c-decl.c index cc818d8..a33510c 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -263,32 +263,31 @@ tree static_ctors, static_dtors; /* Forward declarations. */ -static struct binding_level *make_binding_level PARAMS ((void)); -static void pop_binding_level PARAMS ((struct binding_level **)); -static int duplicate_decls PARAMS ((tree, tree, int)); -static int redeclaration_error_message PARAMS ((tree, tree)); -static void implicit_decl_warning PARAMS ((tree)); -static void storedecls PARAMS ((tree)); -static void storetags PARAMS ((tree)); -static tree lookup_tag PARAMS ((enum tree_code, tree, int)); -static tree lookup_name_current_level PARAMS ((tree)); -static tree grokdeclarator PARAMS ((tree, tree, enum decl_context, - int)); -static tree grokparms PARAMS ((tree, int)); -static void layout_array_type PARAMS ((tree)); -static tree c_make_fname_decl PARAMS ((tree, int)); -static void c_expand_body_1 PARAMS ((tree, int)); -static tree any_external_decl PARAMS ((tree)); -static void record_external_decl PARAMS ((tree)); -static void warn_if_shadowing PARAMS ((tree, tree)); -static void clone_underlying_type PARAMS ((tree)); -static bool flexible_array_type_p PARAMS ((tree)); +static struct binding_level *make_binding_level (void); +static void pop_binding_level (struct binding_level **); +static int duplicate_decls (tree, tree, int); +static int redeclaration_error_message (tree, tree); +static void implicit_decl_warning (tree); +static void storedecls (tree); +static void storetags (tree); +static tree lookup_tag (enum tree_code, tree, int); +static tree lookup_name_current_level (tree); +static tree grokdeclarator (tree, tree, enum decl_context, int); +static tree grokparms (tree, int); +static void layout_array_type (tree); +static tree c_make_fname_decl (tree, int); +static void c_expand_body_1 (tree, int); +static tree any_external_decl (tree); +static void record_external_decl (tree); +static void warn_if_shadowing (tree, tree); +static void clone_underlying_type (tree); +static bool flexible_array_type_p (tree); /* States indicating how grokdeclarator() should handle declspecs marked with __attribute__((deprecated)). An object declared as __attribute__((deprecated)) suppresses warnings of uses of other deprecated items. */ - + enum deprecated_states { DEPRECATED_NORMAL, DEPRECATED_SUPPRESS @@ -297,10 +296,7 @@ enum deprecated_states { static enum deprecated_states deprecated_state = DEPRECATED_NORMAL; void -c_print_identifier (file, node, indent) - FILE *file; - tree node; - int indent; +c_print_identifier (FILE *file, tree node, int indent) { print_node (file, "symbol", IDENTIFIER_SYMBOL_VALUE (node), indent + 4); print_node (file, "tag", IDENTIFIER_TAG_VALUE (node), indent + 4); @@ -319,8 +315,7 @@ c_print_identifier (file, node, indent) for a top-level tentative array defn that wasn't complete before. */ void -c_finish_incomplete_decl (decl) - tree decl; +c_finish_incomplete_decl (tree decl) { if (TREE_CODE (decl) == VAR_DECL) { @@ -342,7 +337,7 @@ c_finish_incomplete_decl (decl) /* Reuse or create a struct for this binding level. */ static struct binding_level * -make_binding_level () +make_binding_level (void) { struct binding_level *result; if (free_binding_level) @@ -361,12 +356,11 @@ make_binding_level () /* Remove a binding level from a list and add it to the level chain. */ static void -pop_binding_level (lp) - struct binding_level **lp; +pop_binding_level (struct binding_level **lp) { struct binding_level *l = *lp; *lp = l->level_chain; - + memset (l, 0, sizeof (struct binding_level)); l->level_chain = free_binding_level; free_binding_level = l; @@ -375,13 +369,13 @@ pop_binding_level (lp) /* Nonzero if we are currently in the global binding level. */ int -global_bindings_p () +global_bindings_p (void) { return current_binding_level == global_binding_level; } void -keep_next_level () +keep_next_level (void) { keep_next_level_flag = 1; } @@ -389,7 +383,7 @@ keep_next_level () /* Nonzero if the current level needs to have a BLOCK made. */ int -kept_level_p () +kept_level_p (void) { return ((current_binding_level->keep_if_subblocks && current_binding_level->blocks != 0) @@ -404,8 +398,7 @@ kept_level_p () DEFINITION_FLAG, so we ignore it. */ void -declare_parm_level (definition_flag) - int definition_flag ATTRIBUTE_UNUSED; +declare_parm_level (int definition_flag ATTRIBUTE_UNUSED) { current_binding_level->parm_flag = 1; } @@ -413,7 +406,7 @@ declare_parm_level (definition_flag) /* Nonzero if currently making parm declarations. */ int -in_parm_level_p () +in_parm_level_p (void) { return current_binding_level->parm_flag; } @@ -421,8 +414,7 @@ in_parm_level_p () /* Enter a new binding level. */ void -pushlevel (dummy) - int dummy ATTRIBUTE_UNUSED; +pushlevel (int dummy ATTRIBUTE_UNUSED) { /* If this is the top level of a function, make sure that NAMED_LABELS is 0. */ @@ -475,10 +467,7 @@ pushlevel (dummy) them into the BLOCK. */ tree -poplevel (keep, reverse, functionbody) - int keep; - int reverse; - int functionbody; +poplevel (int keep, int reverse, int functionbody) { tree link; tree block; @@ -659,8 +648,7 @@ poplevel (keep, reverse, functionbody) to handle the BLOCK node inside the BIND_EXPR. */ void -insert_block (block) - tree block; +insert_block (tree block) { TREE_USED (block) = 1; current_binding_level->blocks @@ -672,13 +660,12 @@ insert_block (block) this hook, but it is not useful in function-at-a-time mode. */ void -set_block (block) - tree block ATTRIBUTE_UNUSED; +set_block (tree block ATTRIBUTE_UNUSED) { } void -push_label_level () +push_label_level (void) { struct binding_level *newlevel; @@ -696,7 +683,7 @@ push_label_level () } void -pop_label_level () +pop_label_level (void) { struct binding_level *level = label_level_chain; tree link, prev; @@ -755,8 +742,7 @@ pop_label_level () In that case, the TYPE_SIZE will be zero. */ void -pushtag (name, type) - tree name, type; +pushtag (tree name, tree type) { struct binding_level *b = current_binding_level; @@ -801,9 +787,7 @@ pushtag (name, type) and OLDDECL is in an outer binding level and should thus not be changed. */ static int -duplicate_decls (newdecl, olddecl, different_binding_level) - tree newdecl, olddecl; - int different_binding_level; +duplicate_decls (tree newdecl, tree olddecl, int different_binding_level) { int types_match = comptypes (TREE_TYPE (newdecl), TREE_TYPE (olddecl)); int new_is_definition = (TREE_CODE (newdecl) == FUNCTION_DECL @@ -1547,8 +1531,7 @@ duplicate_decls (newdecl, olddecl, different_binding_level) currently in scope. */ static tree -any_external_decl (id) - tree id; +any_external_decl (tree id) { tree decl = IDENTIFIER_SYMBOL_VALUE (id); tree t; @@ -1568,8 +1551,7 @@ any_external_decl (id) /* Record an external decl DECL. This only does something if a shadowing decl already exists. */ static void -record_external_decl (decl) - tree decl; +record_external_decl (tree decl) { tree name = DECL_NAME (decl); if (!IDENTIFIER_SYMBOL_VALUE (name)) @@ -1582,8 +1564,7 @@ record_external_decl (decl) OLD is the old IDENTIFIER_SYMBOL_VALUE of the DECL_NAME of X, which might be a NULL_TREE. */ static void -warn_if_shadowing (x, old) - tree x, old; +warn_if_shadowing (tree x, tree old) { const char *name; @@ -1660,8 +1641,7 @@ warn_if_shadowing (x, old) on a standard type by checking the current value of lineno. */ static void -clone_underlying_type (x) - tree x; +clone_underlying_type (tree x) { if (DECL_SOURCE_LINE (x) == 0) { @@ -1689,8 +1669,7 @@ clone_underlying_type (x) to agree with what X says. */ tree -pushdecl (x) - tree x; +pushdecl (tree x) { tree name = DECL_NAME (x); struct binding_level *scope = current_binding_level; @@ -1744,7 +1723,7 @@ pushdecl (x) else record_external_decl (x); } - + if (TREE_CODE (x) == TYPE_DECL) clone_underlying_type (x); @@ -1797,8 +1776,7 @@ pushdecl (x) and is limited to its needs. It will hork if there is _any_ visible binding for X (not just a global one). */ tree -pushdecl_top_level (x) - tree x; +pushdecl_top_level (tree x) { tree name, old; @@ -1834,9 +1812,7 @@ pushdecl_top_level (x) called; if there is any preexisting decl for this identifier, it is an ICE. */ tree -pushdecl_function_level (x, name) - tree x; - tree name; +pushdecl_function_level (tree x, tree name) { struct binding_level *scope; @@ -1869,8 +1845,7 @@ pushdecl_function_level (x, name) function of type int (). */ tree -implicitly_declare (functionid) - tree functionid; +implicitly_declare (tree functionid) { tree decl = any_external_decl (functionid); @@ -1922,8 +1897,7 @@ implicitly_declare (functionid) } static void -implicit_decl_warning (id) - tree id; +implicit_decl_warning (tree id) { const char *name = IDENTIFIER_POINTER (id); if (mesg_implicit_function_declaration == 2) @@ -1939,8 +1913,7 @@ implicit_decl_warning (id) and 3 if it is a conflicting declaration. */ static int -redeclaration_error_message (newdecl, olddecl) - tree newdecl, olddecl; +redeclaration_error_message (tree newdecl, tree olddecl) { if (TREE_CODE (newdecl) == TYPE_DECL) { @@ -2001,8 +1974,7 @@ redeclaration_error_message (newdecl, olddecl) This function is called for both label definitions and label references. */ tree -lookup_label (id) - tree id; +lookup_label (tree id) { tree decl = IDENTIFIER_LABEL_VALUE (id); @@ -2050,8 +2022,7 @@ lookup_label (id) requires calling declare_nonlocal_label right away. */ tree -shadow_label (name) - tree name; +shadow_label (tree name) { tree decl = IDENTIFIER_LABEL_VALUE (name); @@ -2124,7 +2095,7 @@ define_label (const char* filename, int line, tree name) store the result back using `storedecls' or you will lose. */ tree -getdecls () +getdecls (void) { return current_binding_level->names; } @@ -2132,7 +2103,7 @@ getdecls () /* Return the list of type-tags (for structs, etc) of the current level. */ tree -gettags () +gettags (void) { return current_binding_level->tags; } @@ -2142,8 +2113,7 @@ gettags () after they are modified in the light of any missing parameters. */ static void -storedecls (decls) - tree decls; +storedecls (tree decls) { current_binding_level->names = decls; } @@ -2151,8 +2121,7 @@ storedecls (decls) /* Similarly, store the list of tags of the current level. */ static void -storetags (tags) - tree tags; +storetags (tree tags) { current_binding_level->tags = tags; } @@ -2165,10 +2134,7 @@ storetags (tags) If the wrong kind of type is found, an error is reported. */ static tree -lookup_tag (code, name, thislevel_only) - enum tree_code code; - tree name; - int thislevel_only; +lookup_tag (enum tree_code code, tree name, int thislevel_only) { tree tag = IDENTIFIER_TAG_VALUE (name); int thislevel = 0; @@ -2210,7 +2176,7 @@ lookup_tag (code, name, thislevel_only) when used in the `struct foo;' construct for shadowing. */ void -pending_xref_error () +pending_xref_error (void) { if (pending_invalid_xref != 0) error ("%H`%s' defined as wrong kind of tag", @@ -2226,8 +2192,7 @@ pending_xref_error () or return 0 if it is undefined. */ tree -lookup_name (name) - tree name; +lookup_name (tree name) { tree decl = IDENTIFIER_SYMBOL_VALUE (name); if (decl == 0 || decl == error_mark_node) @@ -2240,8 +2205,7 @@ lookup_name (name) /* Similar to `lookup_name' but look only at the current binding level. */ static tree -lookup_name_current_level (name) - tree name; +lookup_name_current_level (tree name) { tree decl = IDENTIFIER_SYMBOL_VALUE (name); @@ -2264,7 +2228,7 @@ lookup_name_current_level (name) Make definitions for built-in primitive functions. */ void -c_init_decl_processing () +c_init_decl_processing (void) { tree endlink; tree ptr_ftype_void, ptr_ftype_ptr; @@ -2330,9 +2294,7 @@ c_init_decl_processing () are string merging candidates, which is wrong for C99's __func__. FIXME. */ static tree -c_make_fname_decl (id, type_dep) - tree id; - int type_dep; +c_make_fname_decl (tree id, int type_dep) { const char *name = fname_as_string (type_dep); tree decl, type, init; @@ -2343,11 +2305,11 @@ c_make_fname_decl (id, type_dep) build_index_type (size_int (length))); decl = build_decl (VAR_DECL, id, type); - + TREE_STATIC (decl) = 1; TREE_READONLY (decl) = 1; DECL_ARTIFICIAL (decl) = 1; - + init = build_string (length + 1, name); TREE_TYPE (init) = type; DECL_INITIAL (decl) = init; @@ -2372,13 +2334,9 @@ c_make_fname_decl (id, type_dep) ATTRS is nonzero, use that for the function's attribute list. */ tree -builtin_function (name, type, function_code, class, library_name, attrs) - const char *name; - tree type; - int function_code; - enum built_in_class class; - const char *library_name; - tree attrs; +builtin_function (const char *name, tree type, int function_code, + enum built_in_class class, const char *library_name, + tree attrs) { tree decl = build_decl (FUNCTION_DECL, get_identifier (name), type); DECL_EXTERNAL (decl) = 1; @@ -2408,8 +2366,7 @@ builtin_function (name, type, function_code, class, library_name, attrs) attributes. */ void -c_insert_default_attributes (decl) - tree decl; +c_insert_default_attributes (tree decl) { if (!TREE_PUBLIC (decl)) return; @@ -2425,16 +2382,15 @@ c_insert_default_attributes (decl) Otherwise, it is an error. */ void -shadow_tag (declspecs) - tree declspecs; +shadow_tag (tree declspecs) { shadow_tag_warned (declspecs, 0); } void -shadow_tag_warned (declspecs, warned) - tree declspecs; - int warned; +shadow_tag_warned (tree declspecs, int warned) + + /* 1 => we have done a pedwarn. 2 => we have done a warning, but no pedwarn. */ { @@ -2515,11 +2471,7 @@ shadow_tag_warned (declspecs, warned) which has TREE_STATIC set if "static" is used. */ tree -build_array_declarator (expr, quals, static_p, vla_unspec_p) - tree expr; - tree quals; - int static_p; - int vla_unspec_p; +build_array_declarator (tree expr, tree quals, int static_p, int vla_unspec_p) { tree decl; decl = build_nt (ARRAY_REF, NULL_TREE, expr); @@ -2545,10 +2497,7 @@ build_array_declarator (expr, quals, static_p, vla_unspec_p) C99 grammar. */ tree -set_array_declarator_type (decl, type, abstract_p) - tree decl; - tree type; - int abstract_p; +set_array_declarator_type (tree decl, tree type, int abstract_p) { TREE_OPERAND (decl, 0) = type; if (abstract_p && (TREE_TYPE (decl) != NULL_TREE || TREE_STATIC (decl))) @@ -2559,8 +2508,7 @@ set_array_declarator_type (decl, type, abstract_p) /* Decode a "typename", such as "int **", returning a ..._TYPE node. */ tree -groktypename (typename) - tree typename; +groktypename (tree typename) { tree specs, attrs; @@ -2580,8 +2528,7 @@ groktypename (typename) /* Return a PARM_DECL node for a given pair of specs and declarator. */ tree -groktypename_in_parm_context (typename) - tree typename; +groktypename_in_parm_context (tree typename) { if (TREE_CODE (typename) != TREE_LIST) return typename; @@ -2606,14 +2553,11 @@ groktypename_in_parm_context (typename) grokfield and not through here. */ tree -start_decl (declarator, declspecs, initialized, attributes) - tree declarator, declspecs; - int initialized; - tree attributes; +start_decl (tree declarator, tree declspecs, int initialized, tree attributes) { tree decl; tree tem; - + /* An object declared as __attribute__((deprecated)) suppresses warnings of uses of other deprecated items. */ if (lookup_attribute ("deprecated", attributes)) @@ -2621,7 +2565,7 @@ start_decl (declarator, declspecs, initialized, attributes) decl = grokdeclarator (declarator, declspecs, NORMAL, initialized); - + deprecated_state = DEPRECATED_NORMAL; if (warn_main > 0 && TREE_CODE (decl) != FUNCTION_DECL @@ -2773,9 +2717,7 @@ start_decl (declarator, declspecs, initialized, attributes) it must be determined now, from the initial value, or it is an error. */ void -finish_decl (decl, init, asmspec_tree) - tree decl, init; - tree asmspec_tree; +finish_decl (tree decl, tree init, tree asmspec_tree) { tree type = TREE_TYPE (decl); int was_incomplete = (DECL_SIZE (decl) == 0); @@ -2790,7 +2732,7 @@ finish_decl (decl, init, asmspec_tree) /* If `start_decl' didn't like having an initialization, ignore it now. */ if (init != 0 && DECL_INITIAL (decl) == 0) init = 0; - + /* Don't crash if parm is initialized. */ if (TREE_CODE (decl) == PARM_DECL) init = 0; @@ -2953,7 +2895,7 @@ finish_decl (decl, init, asmspec_tree) ordinary, non-register local variable. Historically, GCC has accepted -- but ignored -- the ASMSPEC in this case. */ - if (TREE_CODE (decl) == VAR_DECL + if (TREE_CODE (decl) == VAR_DECL && !DECL_REGISTER (decl) && !TREE_STATIC (decl)) warning_with_decl (decl, @@ -3038,8 +2980,7 @@ finish_decl (decl, init, asmspec_tree) record the given order of parms in `parm_order'. */ void -push_parm_decl (parm) - tree parm; +push_parm_decl (tree parm) { tree decl; int old_immediate_size_expand = immediate_size_expand; @@ -3077,7 +3018,7 @@ push_parm_decl (parm) and also at semicolon terminating forward decls. */ void -clear_parm_order () +clear_parm_order (void) { current_binding_level->parm_order = NULL_TREE; } @@ -3090,9 +3031,7 @@ static GTY(()) int compound_literal_number; literal. */ tree -build_compound_literal (type, init) - tree type; - tree init; +build_compound_literal (tree type, tree init) { /* We do not use start_decl here because we have a type, not a declarator; and do not use finish_decl because the decl should be stored inside @@ -3132,7 +3071,7 @@ build_compound_literal (type, init) a unique suffix to be added to the name. */ char *name; - ASM_FORMAT_PRIVATE_NAME (name, "__compound_literal", + ASM_FORMAT_PRIVATE_NAME (name, "__compound_literal", compound_literal_number); compound_literal_number++; DECL_NAME (decl) = get_identifier (name); @@ -3151,10 +3090,7 @@ build_compound_literal (type, init) 2 if there was no information (in which case assume 1 if DO_DEFAULT). */ int -complete_array_type (type, initial_value, do_default) - tree type; - tree initial_value; - int do_default; +complete_array_type (tree type, tree initial_value, int do_default) { tree maxindex = NULL_TREE; int value = 0; @@ -3220,8 +3156,7 @@ complete_array_type (type, initial_value, do_default) or a union containing such a structure (possibly recursively). */ static bool -flexible_array_type_p (type) - tree type; +flexible_array_type_p (tree type) { tree x; switch (TREE_CODE (type)) @@ -3280,11 +3215,8 @@ flexible_array_type_p (type) and `extern' are interpreted. */ static tree -grokdeclarator (declarator, declspecs, decl_context, initialized) - tree declspecs; - tree declarator; - enum decl_context decl_context; - int initialized; +grokdeclarator (tree declarator, tree declspecs, + enum decl_context decl_context, int initialized) { int specbits = 0; tree spec; @@ -4301,7 +4233,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized) } else if (type_quals) type = c_build_qualified_type (type, type_quals); - + type_as_written = type; decl = build_decl (PARM_DECL, declarator, type); @@ -4464,7 +4396,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized) tree global_decl; global_decl = identifier_global_value (declarator); - if (global_decl + if (global_decl && TREE_CODE (global_decl) == VAR_DECL && !TREE_PUBLIC (global_decl)) error ("variable previously declared `static' redeclared " @@ -4548,9 +4480,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized) when FUNCDEF_FLAG is zero. */ static tree -grokparms (parms_info, funcdef_flag) - tree parms_info; - int funcdef_flag; +grokparms (tree parms_info, int funcdef_flag) { tree first_parm = TREE_CHAIN (parms_info); @@ -4645,8 +4575,7 @@ grokparms (parms_info, funcdef_flag) Zero means the parmlist ended with an ellipsis so don't append `void'. */ tree -get_parm_info (void_at_end) - int void_at_end; +get_parm_info (int void_at_end) { tree decl, t; tree types = 0; @@ -4746,7 +4675,7 @@ get_parm_info (void_at_end) defined within. Do so because these types cannot ever become complete. */ void -parmlist_tags_warning () +parmlist_tags_warning (void) { tree elt; static int already; @@ -4792,9 +4721,7 @@ parmlist_tags_warning () Define the tag as a forward-reference if it is not defined. */ tree -xref_tag (code, name) - enum tree_code code; - tree name; +xref_tag (enum tree_code code, tree name) { /* If a cross reference is requested, look up the type already defined for this tag and return it. */ @@ -4843,9 +4770,7 @@ xref_tag (code, name) CODE says which kind of tag NAME ought to be. */ tree -start_struct (code, name) - enum tree_code code; - tree name; +start_struct (enum tree_code code, tree name) { /* If there is already a tag defined at this binding level (as a forward reference), just return it. */ @@ -4862,7 +4787,7 @@ start_struct (code, name) error ("redefinition of `union %s'", IDENTIFIER_POINTER (name)); else error ("redefinition of `struct %s'", IDENTIFIER_POINTER (name)); - } + } } else { @@ -4871,7 +4796,7 @@ start_struct (code, name) ref = make_node (code); pushtag (name, ref); } - + C_TYPE_BEING_DEFINED (ref) = 1; TYPE_PACKED (ref) = flag_pack_struct; return ref; @@ -4886,10 +4811,8 @@ start_struct (code, name) are ultimately passed to `build_struct' to make the RECORD_TYPE node. */ tree -grokfield (filename, line, declarator, declspecs, width) - const char *filename ATTRIBUTE_UNUSED; - int line ATTRIBUTE_UNUSED; - tree declarator, declspecs, width; +grokfield (const char *filename ATTRIBUTE_UNUSED, int line ATTRIBUTE_UNUSED, + tree declarator, tree declspecs, tree width) { tree value; @@ -5009,10 +4932,7 @@ detect_field_duplicates (tree fieldlist) ATTRIBUTES are attributes to be applied to the structure. */ tree -finish_struct (t, fieldlist, attributes) - tree t; - tree fieldlist; - tree attributes; +finish_struct (tree t, tree fieldlist, tree attributes) { tree x; int toplevel = global_binding_level == current_binding_level; @@ -5289,8 +5209,7 @@ finish_struct (t, fieldlist, attributes) /* Lay out the type T, and its element type, and so on. */ static void -layout_array_type (t) - tree t; +layout_array_type (tree t) { if (TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE) layout_array_type (TREE_TYPE (t)); @@ -5304,8 +5223,7 @@ layout_array_type (t) may be used to declare the individual values as they are read. */ tree -start_enum (name) - tree name; +start_enum (tree name) { tree enumtype = 0; @@ -5350,10 +5268,7 @@ start_enum (name) Returns ENUMTYPE. */ tree -finish_enum (enumtype, values, attributes) - tree enumtype; - tree values; - tree attributes; +finish_enum (tree enumtype, tree values, tree attributes) { tree pair, tem; tree minnode = 0, maxnode = 0, enum_value_type; @@ -5478,8 +5393,7 @@ finish_enum (enumtype, values, attributes) Assignment of sequential values by default is handled here. */ tree -build_enumerator (name, value) - tree name, value; +build_enumerator (tree name, tree value) { tree decl, type; @@ -5554,8 +5468,7 @@ build_enumerator (name, value) yyparse to report a parse error. */ int -start_function (declspecs, declarator, attributes) - tree declarator, declspecs, attributes; +start_function (tree declspecs, tree declarator, tree attributes) { tree decl1, old_decl; tree restype; @@ -5768,7 +5681,7 @@ start_function (declspecs, declarator, attributes) immediate_size_expand = old_immediate_size_expand; start_fname_decls (); - + return 1; } @@ -5780,7 +5693,7 @@ start_function (declspecs, declarator, attributes) to specify at least the number of arguments. */ void -store_parm_decls () +store_parm_decls (void) { tree fndecl = current_function_decl; tree parm; @@ -6175,7 +6088,7 @@ store_parm_decls () { tree t; - DECL_LANG_SPECIFIC (fndecl)->pending_sizes + DECL_LANG_SPECIFIC (fndecl)->pending_sizes = nreverse (get_pending_sizes ()); for (t = DECL_LANG_SPECIFIC (fndecl)->pending_sizes; t; @@ -6206,9 +6119,7 @@ store_parm_decls () CAN_DEFER_P is nonzero if the function may be deferred. */ void -finish_function (nested, can_defer_p) - int nested; - int can_defer_p; +finish_function (int nested, int can_defer_p) { tree fndecl = current_function_decl; @@ -6260,7 +6171,7 @@ finish_function (nested, can_defer_p) #endif } } - + finish_fname_decls (); /* Tie off the statement tree for this function. */ @@ -6336,7 +6247,7 @@ finish_function (nested, can_defer_p) current_function_decl = NULL; return; } - + /* Then, inline any functions called in it. */ optimize_inline_calls (fndecl); timevar_pop (TV_INTEGRATION); @@ -6361,8 +6272,7 @@ finish_function (nested, can_defer_p) /* Generate the RTL for a deferred function FNDECL. */ void -c_expand_deferred_function (fndecl) - tree fndecl; +c_expand_deferred_function (tree fndecl) { /* DECL_INLINE or DECL_RESULT might got cleared after the inline function was deferred, e.g. in duplicate_decls. */ @@ -6384,7 +6294,7 @@ c_expand_deferred_function (fndecl) nested FUNCTION_DECL. */ static tree -set_save_expr_context (tree *tp, +set_save_expr_context (tree *tp, int *walk_subtrees, void *data) { @@ -6404,9 +6314,7 @@ set_save_expr_context (tree *tp, generation of RTL. */ static void -c_expand_body_1 (fndecl, nested_p) - tree fndecl; - int nested_p; +c_expand_body_1 (tree fndecl, int nested_p) { timevar_push (TV_EXPAND); @@ -6445,7 +6353,7 @@ c_expand_body_1 (fndecl, nested_p) && variably_modified_type_p (TREE_TYPE (fndecl))) walk_tree (&TREE_TYPE (fndecl), set_save_expr_context, fndecl, NULL); - + /* If this function is `main', emit a call to `__main' to run global initializers, etc. */ if (DECL_NAME (fndecl) @@ -6556,8 +6464,7 @@ c_expand_body_1 (fndecl, nested_p) /* Like c_expand_body_1 but only for unnested functions. */ void -c_expand_body (fndecl) - tree fndecl; +c_expand_body (tree fndecl) { c_expand_body_1 (fndecl, 0); } @@ -6565,7 +6472,7 @@ c_expand_body (fndecl) /* Check the declarations given in a for-loop for satisfying the C99 constraints. */ void -check_for_loop_decls () +check_for_loop_decls (void) { tree t; @@ -6596,7 +6503,7 @@ check_for_loop_decls () if (TREE_PURPOSE (t) != 0) { enum tree_code code = TREE_CODE (TREE_VALUE (t)); - + if (code == RECORD_TYPE) error ("`struct %s' declared in `for' loop initial declaration", IDENTIFIER_POINTER (TREE_PURPOSE (t))); @@ -6641,8 +6548,7 @@ struct language_function GTY(()) used during compilation of a C function. */ void -c_push_function_context (f) - struct function *f; +c_push_function_context (struct function *f) { struct language_function *p; p = ((struct language_function *) @@ -6664,8 +6570,7 @@ c_push_function_context (f) /* Restore the variables used during compilation of a C function. */ void -c_pop_function_context (f) - struct function *f; +c_pop_function_context (struct function *f) { struct language_function *p = f->language; tree link; @@ -6703,8 +6608,7 @@ c_pop_function_context (f) /* Copy the DECL_LANG_SPECIFIC data associated with DECL. */ void -c_dup_lang_specific_decl (decl) - tree decl; +c_dup_lang_specific_decl (tree decl) { struct lang_decl *ld; @@ -6727,7 +6631,7 @@ c_dup_lang_specific_decl (decl) at the end of the statement. */ int -stmts_are_full_exprs_p () +stmts_are_full_exprs_p (void) { return 0; } @@ -6737,7 +6641,7 @@ stmts_are_full_exprs_p () returned. */ stmt_tree -current_stmt_tree () +current_stmt_tree (void) { return &c_stmt_tree; } @@ -6745,7 +6649,7 @@ current_stmt_tree () /* Returns the stack of SCOPE_STMTs for the current function. */ tree * -current_scope_stmt_stack () +current_scope_stmt_stack (void) { return &c_scope_stmt_stack; } @@ -6754,8 +6658,7 @@ current_scope_stmt_stack () C. */ int -anon_aggr_type_p (node) - tree node ATTRIBUTE_UNUSED; +anon_aggr_type_p (tree node ATTRIBUTE_UNUSED) { return 0; } @@ -6763,7 +6666,7 @@ anon_aggr_type_p (node) /* Dummy function in place of callback used by C++. */ void -extract_interface_info () +extract_interface_info (void) { } @@ -6771,7 +6674,7 @@ extract_interface_info () statement tree. */ tree -c_begin_compound_stmt () +c_begin_compound_stmt (void) { tree stmt; @@ -6785,8 +6688,7 @@ c_begin_compound_stmt () common code. */ void -c_expand_decl_stmt (t) - tree t; +c_expand_decl_stmt (tree t) { tree decl = DECL_STMT_DECL (t); @@ -6800,8 +6702,7 @@ c_expand_decl_stmt (t) /* Return the global value of T as a symbol. */ tree -identifier_global_value (t) - tree t; +identifier_global_value (tree t) { tree decl = IDENTIFIER_SYMBOL_VALUE (t); if (decl == 0 || DECL_CONTEXT (decl) == 0) @@ -6820,10 +6721,7 @@ identifier_global_value (t) otherwise the name is found in ridpointers from RID_INDEX. */ void -record_builtin_type (rid_index, name, type) - enum rid rid_index; - const char *name; - tree type; +record_builtin_type (enum rid rid_index, const char *name, tree type) { tree id; if (name == 0) @@ -6835,7 +6733,7 @@ record_builtin_type (rid_index, name, type) /* Build the void_list_node (void_type_node having been created). */ tree -build_void_list_node () +build_void_list_node (void) { tree t = build_tree_list (NULL_TREE, void_type_node); return t; @@ -6851,8 +6749,7 @@ build_void_list_node () if attributes are present) and whose type is the modifier list. */ tree -make_pointer_declarator (type_quals_attrs, target) - tree type_quals_attrs, target; +make_pointer_declarator (tree type_quals_attrs, tree target) { tree quals, attrs; tree itarget = target; diff --git a/gcc/c-dump.c b/gcc/c-dump.c index 7f3464b..5403bf8 100644 --- a/gcc/c-dump.c +++ b/gcc/c-dump.c @@ -30,9 +30,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* Dump information common to statements from STMT. */ void -dump_stmt (di, t) - dump_info_p di; - tree t; +dump_stmt (dump_info_p di, tree t) { dump_int (di, "line", STMT_LINENO (t)); } @@ -40,9 +38,7 @@ dump_stmt (di, t) /* Dump the next statement after STMT. */ void -dump_next_stmt (di, t) - dump_info_p di; - tree t; +dump_next_stmt (dump_info_p di, tree t) { dump_child ("next", TREE_CHAIN (t)); } @@ -50,9 +46,7 @@ dump_next_stmt (di, t) /* Dump any C-specific tree codes and attributes of common codes. */ bool -c_dump_tree (dump_info, t) - void *dump_info; - tree t; +c_dump_tree (void *dump_info, tree t) { enum tree_code code; dump_info_p di = (dump_info_p) dump_info; diff --git a/gcc/c-format.c b/gcc/c-format.c index c72a803..d0138ee 100644 --- a/gcc/c-format.c +++ b/gcc/c-format.c @@ -34,8 +34,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* Set format warning options according to a -Wformat=n option. */ void -set_Wformat (setting) - int setting; +set_Wformat (int setting) { warn_format = setting; warn_format_y2k = setting; @@ -67,9 +66,8 @@ typedef struct function_format_info unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ } function_format_info; -static bool decode_format_attr PARAMS ((tree, - function_format_info *, int)); -static enum format_type decode_format_type PARAMS ((const char *)); +static bool decode_format_attr (tree, function_format_info *, int); +static enum format_type decode_format_type (const char *); static bool check_format_string (tree argument, unsigned HOST_WIDE_INT format_num, @@ -81,12 +79,8 @@ static bool get_constant (tree expr, unsigned HOST_WIDE_INT *value, /* Handle a "format_arg" attribute; arguments as in struct attribute_spec.handler. */ tree -handle_format_arg_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name ATTRIBUTE_UNUSED; - tree args; - int flags; - bool *no_add_attrs; +handle_format_arg_attribute (tree *node, tree name ATTRIBUTE_UNUSED, + tree args, int flags, _Bool *no_add_attrs) { tree type = *node; tree format_num_expr = TREE_VALUE (args); @@ -180,10 +174,7 @@ get_constant(tree expr, unsigned HOST_WIDE_INT *value, int validated_p) successfully decoded, false otherwise. */ static bool -decode_format_attr (args, info, validated_p) - tree args; - function_format_info *info; - int validated_p; +decode_format_attr (tree args, function_format_info *info, int validated_p) { tree format_type_id = TREE_VALUE (args); tree format_num_expr = TREE_VALUE (TREE_CHAIN (args)); @@ -893,32 +884,30 @@ typedef struct int *status; } format_check_context; -static void check_format_info PARAMS ((int *, function_format_info *, tree)); -static void check_format_arg PARAMS ((void *, tree, unsigned HOST_WIDE_INT)); -static void check_format_info_main PARAMS ((int *, format_check_results *, - function_format_info *, - const char *, int, tree, - unsigned HOST_WIDE_INT)); -static void status_warning PARAMS ((int *, const char *, ...)) +static void check_format_info (int *, function_format_info *, tree); +static void check_format_arg (void *, tree, unsigned HOST_WIDE_INT); +static void check_format_info_main (int *, format_check_results *, + function_format_info *, + const char *, int, tree, + unsigned HOST_WIDE_INT); +static void status_warning (int *, const char *, ...) ATTRIBUTE_PRINTF_2; -static void init_dollar_format_checking PARAMS ((int, tree)); -static int maybe_read_dollar_number PARAMS ((int *, const char **, int, - tree, tree *, - const format_kind_info *)); -static void finish_dollar_format_checking PARAMS ((int *, format_check_results *, int)); +static void init_dollar_format_checking (int, tree); +static int maybe_read_dollar_number (int *, const char **, int, + tree, tree *, const format_kind_info *); +static void finish_dollar_format_checking (int *, format_check_results *, int); -static const format_flag_spec *get_flag_spec PARAMS ((const format_flag_spec *, - int, const char *)); +static const format_flag_spec *get_flag_spec (const format_flag_spec *, + int, const char *); -static void check_format_types PARAMS ((int *, format_wanted_type *)); +static void check_format_types (int *, format_wanted_type *); /* Decode a format type from a string, returning the type, or format_type_error if not valid, in which case the caller should print an error message. */ static enum format_type -decode_format_type (s) - const char *s; +decode_format_type (const char *s) { int i; int slen; @@ -945,10 +934,7 @@ decode_format_type (s) attribute themselves. */ void -check_function_format (status, attrs, params) - int *status; - tree attrs; - tree params; +check_function_format (int *status, tree attrs, tree params) { tree a; @@ -1041,9 +1027,7 @@ static int dollar_format_warned; function; PARAMS is the list of arguments starting at this argument. */ static void -init_dollar_format_checking (first_arg_num, params) - int first_arg_num; - tree params; +init_dollar_format_checking (int first_arg_num, tree params) { tree oparams = params; @@ -1098,14 +1082,9 @@ init_dollar_format_checking (first_arg_num, params) a $ format is found, *FORMAT is updated to point just after it. */ static int -maybe_read_dollar_number (status, format, dollar_needed, params, param_ptr, - fki) - int *status; - const char **format; - int dollar_needed; - tree params; - tree *param_ptr; - const format_kind_info *fki; +maybe_read_dollar_number (int *status, const char **format, + int dollar_needed, tree params, tree *param_ptr, + const format_kind_info *fki) { int argnum; int overflow_flag; @@ -1210,10 +1189,7 @@ maybe_read_dollar_number (status, format, dollar_needed, params, param_ptr, pointers. */ static void -finish_dollar_format_checking (status, res, pointer_gap_ok) - int *status; - format_check_results *res; - int pointer_gap_ok; +finish_dollar_format_checking (int *status, format_check_results *res, int pointer_gap_ok) { int i; bool found_pointer_gap = false; @@ -1248,10 +1224,7 @@ finish_dollar_format_checking (status, res, pointer_gap_ok) of these is found, it is returned, otherwise NULL is returned. */ static const format_flag_spec * -get_flag_spec (spec, flag, predicates) - const format_flag_spec *spec; - int flag; - const char *predicates; +get_flag_spec (const format_flag_spec *spec, int flag, const char *predicates) { int i; for (i = 0; spec[i].flag_char != 0; i++) @@ -1279,10 +1252,7 @@ get_flag_spec (spec, flag, predicates) PARAMS is the list of argument values. */ static void -check_format_info (status, info, params) - int *status; - function_format_info *info; - tree params; +check_format_info (int *status, function_format_info *info, tree params) { format_check_context format_ctx; unsigned HOST_WIDE_INT arg_num; @@ -1380,10 +1350,8 @@ check_format_info (status, info, params) format_check_context. */ static void -check_format_arg (ctx, format_tree, arg_num) - void *ctx; - tree format_tree; - unsigned HOST_WIDE_INT arg_num; +check_format_arg (void *ctx, tree format_tree, + unsigned HOST_WIDE_INT arg_num) { format_check_context *format_ctx = ctx; format_check_results *res = format_ctx->res; @@ -1539,15 +1507,10 @@ check_format_arg (ctx, format_tree, arg_num) argument in the list of arguments. */ static void -check_format_info_main (status, res, info, format_chars, format_length, - params, arg_num) - int *status; - format_check_results *res; - function_format_info *info; - const char *format_chars; - int format_length; - tree params; - unsigned HOST_WIDE_INT arg_num; +check_format_info_main (int *status, format_check_results *res, + function_format_info *info, const char *format_chars, + int format_length, tree params, + unsigned HOST_WIDE_INT arg_num) { const char *orig_format_chars = format_chars; tree first_fillin_param = params; @@ -2170,9 +2133,7 @@ check_format_info_main (status, res, info, format_chars, format_length, /* Check the argument types from a single format conversion (possibly including width and precision arguments). */ static void -check_format_types (status, types) - int *status; - format_wanted_type *types; +check_format_types (int *status, format_wanted_type *types) { for (; types != 0; types = types->next) { @@ -2433,12 +2394,8 @@ init_dynamic_asm_fprintf_info (void) /* Handle a "format" attribute; arguments as in struct attribute_spec.handler. */ tree -handle_format_attribute (node, name, args, flags, no_add_attrs) - tree *node; - tree name ATTRIBUTE_UNUSED; - tree args; - int flags; - bool *no_add_attrs; +handle_format_attribute (tree *node, tree name ATTRIBUTE_UNUSED, tree args, + int flags, _Bool *no_add_attrs) { tree type = *node; function_format_info info; diff --git a/gcc/c-incpath.c b/gcc/c-incpath.c index b350a21..3776530 100644 --- a/gcc/c-incpath.c +++ b/gcc/c-incpath.c @@ -43,13 +43,13 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # define INO_T_COPY(DEST, SRC) (DEST) = (SRC) #endif -static void add_env_var_paths PARAMS ((const char *, int)); -static void add_standard_paths PARAMS ((const char *, const char *, int)); -static void free_path PARAMS ((struct cpp_path *, int)); -static void merge_include_chains PARAMS ((cpp_reader *, int)); -static struct cpp_path * - remove_duplicates PARAMS ((cpp_reader *, struct cpp_path *, - struct cpp_path *, struct cpp_path *, int)); +static void add_env_var_paths (const char *, int); +static void add_standard_paths (const char *, const char *, int); +static void free_path (struct cpp_path *, int); +static void merge_include_chains (cpp_reader *, int); +static struct cpp_path *remove_duplicates (cpp_reader *, struct cpp_path *, + struct cpp_path *, + struct cpp_path *, int); /* Include chains heads and tails. */ static struct cpp_path *heads[4]; @@ -59,9 +59,7 @@ enum { REASON_QUIET = 0, REASON_NOENT, REASON_DUP, REASON_DUP_SYS }; /* Free an element of the include chain, possibly giving a reason. */ static void -free_path (path, reason) - struct cpp_path *path; - int reason; +free_path (struct cpp_path *path, int reason) { switch (reason) { @@ -90,9 +88,7 @@ free_path (path, reason) /* Read ENV_VAR for a PATH_SEPARATOR-separated list of file names; and append all the names to the search path CHAIN. */ static void -add_env_var_paths (env_var, chain) - const char *env_var; - int chain; +add_env_var_paths (const char *env_var, int chain) { char *p, *q, *path; @@ -122,9 +118,7 @@ add_env_var_paths (env_var, chain) /* Append the standard include chain defined in cppdefault.c. */ static void -add_standard_paths (sysroot, iprefix, cxx_stdinc) - const char *sysroot, *iprefix; - int cxx_stdinc; +add_standard_paths (const char *sysroot, const char *iprefix, int cxx_stdinc) { const struct default_include *p; size_t len; @@ -176,12 +170,9 @@ add_standard_paths (sysroot, iprefix, cxx_stdinc) removed. Return the head of the resulting chain. Any of HEAD, JOIN and SYSTEM can be NULL. */ static struct cpp_path * -remove_duplicates (pfile, head, system, join, verbose) - cpp_reader *pfile; - struct cpp_path *head; - struct cpp_path *system; - struct cpp_path *join; - int verbose; +remove_duplicates (cpp_reader *pfile, struct cpp_path *head, + struct cpp_path *system, struct cpp_path *join, + int verbose) { struct cpp_path **pcur, *tmp, *cur; struct stat st; @@ -255,9 +246,7 @@ remove_duplicates (pfile, head, system, join, verbose) to treat -Ibar -Ifoo -I- -Ifoo -Iquux as if written -Ibar -I- -Ifoo -Iquux. */ static void -merge_include_chains (pfile, verbose) - cpp_reader *pfile; - int verbose; +merge_include_chains (cpp_reader *pfile, int verbose) { /* Join the SYSTEM and AFTER chains. Remove duplicates in the resulting SYSTEM chain. */ @@ -300,7 +289,7 @@ merge_include_chains (pfile, verbose) (Note that -I. -I- is not the same as the default setup; -I. uses the compiler's working dir.) */ void -split_quote_chain () +split_quote_chain (void) { heads[QUOTE] = heads[BRACKET]; tails[QUOTE] = tails[BRACKET]; @@ -313,10 +302,7 @@ split_quote_chain () /* Add PATH to the include chain CHAIN. PATH must be malloc-ed and NUL-terminated. */ void -add_path (path, chain, cxx_aware) - char *path; - int chain; - int cxx_aware; +add_path (char *path, int chain, int cxx_aware) { struct cpp_path *p; @@ -338,11 +324,9 @@ add_path (path, chain, cxx_aware) /* Exported function to handle include chain merging, duplicate removal, and registration with cpplib. */ void -register_include_chains (pfile, sysroot, iprefix, - stdinc, cxx_stdinc, verbose) - cpp_reader *pfile; - const char *sysroot, *iprefix; - int stdinc, cxx_stdinc, verbose; +register_include_chains (cpp_reader *pfile, const char *sysroot, + const char *iprefix, int stdinc, int cxx_stdinc, + int verbose) { static const char *const lang_env_vars[] = { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH", diff --git a/gcc/c-incpath.h b/gcc/c-incpath.h index e5b0218..31ed657 100644 --- a/gcc/c-incpath.h +++ b/gcc/c-incpath.h @@ -15,9 +15,9 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -extern void split_quote_chain PARAMS ((void)); -extern void add_path PARAMS ((char *, int, int)); -extern void register_include_chains PARAMS ((cpp_reader *, const char *, - const char *, int, int, int)); +extern void split_quote_chain (void); +extern void add_path (char *, int, int); +extern void register_include_chains (cpp_reader *, const char *, + const char *, int, int, int); enum { QUOTE = 0, BRACKET, SYSTEM, AFTER }; diff --git a/gcc/c-pragma.c b/gcc/c-pragma.c index 7f026d1..71b3409 100644 --- a/gcc/c-pragma.c +++ b/gcc/c-pragma.c @@ -49,7 +49,7 @@ typedef struct align_stack GTY(()) static GTY(()) struct align_stack * alignment_stack; #ifdef HANDLE_PRAGMA_PACK -static void handle_pragma_pack PARAMS ((cpp_reader *)); +static void handle_pragma_pack (cpp_reader *); #ifdef HANDLE_PRAGMA_PACK_PUSH_POP /* If we have a "global" #pragma pack() in effect when the first @@ -61,14 +61,12 @@ static int default_alignment; #define SET_GLOBAL_ALIGNMENT(ALIGN) \ (default_alignment = maximum_field_alignment = (ALIGN)) -static void push_alignment PARAMS ((int, tree)); -static void pop_alignment PARAMS ((tree)); +static void push_alignment (int, tree); +static void pop_alignment (tree); /* Push an alignment value onto the stack. */ static void -push_alignment (alignment, id) - int alignment; - tree id; +push_alignment (int alignment, tree id) { if (alignment_stack == NULL || alignment_stack->alignment != alignment @@ -99,8 +97,7 @@ push_alignment (alignment, id) /* Undo a push of an alignment onto the stack. */ static void -pop_alignment (id) - tree id; +pop_alignment (tree id) { align_stack * entry; @@ -157,8 +154,7 @@ pop_alignment (id) #pragma pack (pop) #pragma pack (pop, ID) */ static void -handle_pragma_pack (dummy) - cpp_reader *dummy ATTRIBUTE_UNUSED; +handle_pragma_pack (cpp_reader *dummy ATTRIBUTE_UNUSED) { tree x, id = 0; int align = -1; @@ -261,12 +257,11 @@ handle_pragma_pack (dummy) static GTY(()) tree pending_weaks; #ifdef HANDLE_PRAGMA_WEAK -static void apply_pragma_weak PARAMS ((tree, tree)); -static void handle_pragma_weak PARAMS ((cpp_reader *)); +static void apply_pragma_weak (tree, tree); +static void handle_pragma_weak (cpp_reader *); static void -apply_pragma_weak (decl, value) - tree decl, value; +apply_pragma_weak (tree decl, tree value) { if (value) { @@ -285,8 +280,7 @@ apply_pragma_weak (decl, value) } void -maybe_apply_pragma_weak (decl) - tree decl; +maybe_apply_pragma_weak (tree decl) { tree *p, t, id; @@ -311,8 +305,7 @@ maybe_apply_pragma_weak (decl) /* #pragma weak name [= value] */ static void -handle_pragma_weak (dummy) - cpp_reader *dummy ATTRIBUTE_UNUSED; +handle_pragma_weak (cpp_reader *dummy ATTRIBUTE_UNUSED) { tree name, value, x, decl; enum cpp_ttype t; @@ -343,8 +336,7 @@ handle_pragma_weak (dummy) } #else void -maybe_apply_pragma_weak (decl) - tree decl ATTRIBUTE_UNUSED; +maybe_apply_pragma_weak (tree decl ATTRIBUTE_UNUSED) { } #endif /* HANDLE_PRAGMA_WEAK */ @@ -352,12 +344,11 @@ maybe_apply_pragma_weak (decl) static GTY(()) tree pending_redefine_extname; #ifdef HANDLE_PRAGMA_REDEFINE_EXTNAME -static void handle_pragma_redefine_extname PARAMS ((cpp_reader *)); +static void handle_pragma_redefine_extname (cpp_reader *); /* #pragma redefined_extname oldname newname */ static void -handle_pragma_redefine_extname (dummy) - cpp_reader *dummy ATTRIBUTE_UNUSED; +handle_pragma_redefine_extname (cpp_reader *dummy ATTRIBUTE_UNUSED) { tree oldname, newname, decl, x; enum cpp_ttype t; @@ -390,8 +381,7 @@ handle_pragma_redefine_extname (dummy) #endif void -add_to_renaming_pragma_list (oldname, newname) - tree oldname, newname; +add_to_renaming_pragma_list (tree oldname, tree newname) { pending_redefine_extname = tree_cons (oldname, newname, pending_redefine_extname); @@ -400,12 +390,11 @@ add_to_renaming_pragma_list (oldname, newname) static GTY(()) tree pragma_extern_prefix; #ifdef HANDLE_PRAGMA_EXTERN_PREFIX -static void handle_pragma_extern_prefix PARAMS ((cpp_reader *)); +static void handle_pragma_extern_prefix (cpp_reader *); /* #pragma extern_prefix "prefix" */ static void -handle_pragma_extern_prefix (dummy) - cpp_reader *dummy ATTRIBUTE_UNUSED; +handle_pragma_extern_prefix (cpp_reader *dummy ATTRIBUTE_UNUSED) { tree prefix, x; enum cpp_ttype t; @@ -428,8 +417,7 @@ handle_pragma_extern_prefix (dummy) pragmas that rename variables. */ tree -maybe_apply_renaming_pragma (decl, asmname) - tree decl, asmname; +maybe_apply_renaming_pragma (tree decl, tree asmname) { tree oldname; @@ -486,17 +474,15 @@ maybe_apply_renaming_pragma (decl, asmname) /* Front-end wrapper for pragma registration to avoid dragging cpplib.h in almost everywhere. */ void -c_register_pragma (space, name, handler) - const char *space; - const char *name; - void (*handler) PARAMS ((struct cpp_reader *)); +c_register_pragma (const char *space, const char *name, + void (*handler) (struct cpp_reader *)) { cpp_register_pragma (parse_in, space, name, handler); } /* Set up front-end pragmas. */ void -init_pragma () +init_pragma (void) { #ifdef HANDLE_PRAGMA_PACK c_register_pragma (0, "pack", handle_pragma_pack); -- 2.7.4