Commit 2f6e4e97 by Andreas Jaeger Committed by Andreas Jaeger

c-lex.c: Convert to ISO C90.


	* c-lex.c: Convert to ISO C90.
	* c-objc-common.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.h: Likewise.
	* c-pretty-print.c: Likewise.
	* c-pretty-print.h: Likewise.
	* c-semantics.c: Likewise.
	* c-tree.h: Likewise.
	* c-typeck.c: Likewise.

From-SVN: r68327
parent 3346b668
2003-06-22 Andreas Jaeger <aj@suse.de>
* c-lex.c: Convert to ISO C90.
* c-objc-common.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.h: Likewise.
* c-pretty-print.c: Likewise.
* c-pretty-print.h: Likewise.
* c-semantics.c: Likewise.
* c-tree.h: Likewise.
* c-typeck.c: Likewise.
* c-lang.c: Convert to ISO C90.
2003-06-22 Neil Booth <neil@daikokuya.co.uk>
......
......@@ -64,27 +64,24 @@ int c_header_level; /* depth in C headers - C++ only */
/* Nonzero tells yylex to ignore \ in string constants. */
static int ignore_escape_flag;
static tree interpret_integer PARAMS ((const cpp_token *, unsigned int));
static tree interpret_float PARAMS ((const cpp_token *, unsigned int));
static tree interpret_integer (const cpp_token *, unsigned int);
static tree interpret_float (const cpp_token *, unsigned int);
static enum integer_type_kind
narrowest_unsigned_type PARAMS ((tree, unsigned int));
narrowest_unsigned_type (tree, unsigned int);
static enum integer_type_kind
narrowest_signed_type PARAMS ((tree, unsigned int));
static tree lex_string PARAMS ((const cpp_string *));
static tree lex_charconst PARAMS ((const cpp_token *));
static void update_header_times PARAMS ((const char *));
static int dump_one_header PARAMS ((splay_tree_node, void *));
static void cb_line_change PARAMS ((cpp_reader *, const cpp_token *, int));
static void cb_ident PARAMS ((cpp_reader *, unsigned int,
const cpp_string *));
static void cb_def_pragma PARAMS ((cpp_reader *, unsigned int));
static void cb_define PARAMS ((cpp_reader *, unsigned int,
cpp_hashnode *));
static void cb_undef PARAMS ((cpp_reader *, unsigned int,
cpp_hashnode *));
narrowest_signed_type (tree, unsigned int);
static tree lex_string (const cpp_string *);
static tree lex_charconst (const cpp_token *);
static void update_header_times (const char *);
static int dump_one_header (splay_tree_node, void *);
static void cb_line_change (cpp_reader *, const cpp_token *, int);
static void cb_ident (cpp_reader *, unsigned int, const cpp_string *);
static void cb_def_pragma (cpp_reader *, unsigned int);
static void cb_define (cpp_reader *, unsigned int, cpp_hashnode *);
static void cb_undef (cpp_reader *, unsigned int, cpp_hashnode *);
void
init_c_lex ()
init_c_lex (void)
{
struct cpp_callbacks *cb;
struct c_fileinfo *toplevel;
......@@ -100,7 +97,7 @@ init_c_lex ()
body_time = get_run_time ();
toplevel->time = body_time;
}
cb = cpp_get_callbacks (parse_in);
cb->line_change = cb_line_change;
......@@ -120,8 +117,7 @@ init_c_lex ()
}
struct c_fileinfo *
get_fileinfo (name)
const char *name;
get_fileinfo (const char *name)
{
splay_tree_node n;
struct c_fileinfo *fi;
......@@ -140,8 +136,7 @@ get_fileinfo (name)
}
static void
update_header_times (name)
const char *name;
update_header_times (const char *name)
{
/* Changing files again. This means currently collected time
is charged against header time, and body time starts back at 0. */
......@@ -156,9 +151,7 @@ update_header_times (name)
}
static int
dump_one_header (n, dummy)
splay_tree_node n;
void *dummy ATTRIBUTE_UNUSED;
dump_one_header (splay_tree_node n, void *dummy ATTRIBUTE_UNUSED)
{
print_time ((const char *) n->key,
((struct c_fileinfo *) n->value)->time);
......@@ -166,7 +159,7 @@ dump_one_header (n, dummy)
}
void
dump_time_statistics ()
dump_time_statistics (void)
{
struct c_fileinfo *file = get_fileinfo (input_filename);
int this_time = get_run_time ();
......@@ -183,10 +176,9 @@ dump_time_statistics ()
}
static void
cb_ident (pfile, line, str)
cpp_reader *pfile ATTRIBUTE_UNUSED;
unsigned int line ATTRIBUTE_UNUSED;
const cpp_string *str ATTRIBUTE_UNUSED;
cb_ident (cpp_reader *pfile ATTRIBUTE_UNUSED,
unsigned int line ATTRIBUTE_UNUSED,
const cpp_string *str ATTRIBUTE_UNUSED)
{
#ifdef ASM_OUTPUT_IDENT
if (! flag_no_ident)
......@@ -201,17 +193,14 @@ cb_ident (pfile, line, str)
/* Called at the start of every non-empty line. TOKEN is the first
lexed token on the line. Used for diagnostic line numbers. */
static void
cb_line_change (pfile, token, parsing_args)
cpp_reader *pfile ATTRIBUTE_UNUSED;
const cpp_token *token;
int parsing_args ATTRIBUTE_UNUSED;
cb_line_change (cpp_reader *pfile ATTRIBUTE_UNUSED, const cpp_token *token,
int parsing_args ATTRIBUTE_UNUSED)
{
src_lineno = SOURCE_LINE (map, token->line);
}
void
fe_file_change (new_map)
const struct line_map *new_map;
fe_file_change (const struct line_map *new_map)
{
unsigned int to_line = SOURCE_LINE (new_map, new_map->to_line);
......@@ -250,7 +239,7 @@ fe_file_change (new_map)
}
#endif
pop_srcloc ();
(*debug_hooks->end_source_file) (to_line);
}
......@@ -265,9 +254,7 @@ fe_file_change (new_map)
}
static void
cb_def_pragma (pfile, line)
cpp_reader *pfile;
unsigned int line;
cb_def_pragma (cpp_reader *pfile, unsigned int line)
{
/* Issue a warning message if we have been asked to do so. Ignore
unknown pragmas in system headers unless an explicit
......@@ -294,10 +281,7 @@ cb_def_pragma (pfile, line)
/* #define callback for DWARF and DWARF2 debug info. */
static void
cb_define (pfile, line, node)
cpp_reader *pfile;
unsigned int line;
cpp_hashnode *node;
cb_define (cpp_reader *pfile, unsigned int line, cpp_hashnode *node)
{
(*debug_hooks->define) (SOURCE_LINE (map, line),
(const char *) cpp_macro_definition (pfile, node));
......@@ -305,18 +289,15 @@ cb_define (pfile, line, node)
/* #undef callback for DWARF and DWARF2 debug info. */
static void
cb_undef (pfile, line, node)
cpp_reader *pfile ATTRIBUTE_UNUSED;
unsigned int line;
cpp_hashnode *node;
cb_undef (cpp_reader *pfile ATTRIBUTE_UNUSED, unsigned int line,
cpp_hashnode *node)
{
(*debug_hooks->undef) (SOURCE_LINE (map, line),
(const char *) NODE_NAME (node));
}
int
c_lex (value)
tree *value;
c_lex (tree *value)
{
const cpp_token *tok;
......@@ -403,9 +384,7 @@ c_lex (value)
minimum specified by FLAGS, that can fit VALUE, or itk_none if
there isn't one. */
static enum integer_type_kind
narrowest_unsigned_type (value, flags)
tree value;
unsigned int flags;
narrowest_unsigned_type (tree value, unsigned int flags)
{
enum integer_type_kind itk;
......@@ -429,9 +408,7 @@ narrowest_unsigned_type (value, flags)
/* Ditto, but narrowest signed type. */
static enum integer_type_kind
narrowest_signed_type (value, flags)
tree value;
unsigned int flags;
narrowest_signed_type (tree value, unsigned int flags)
{
enum integer_type_kind itk;
......@@ -455,9 +432,7 @@ narrowest_signed_type (value, flags)
/* Interpret TOKEN, an integer with FLAGS as classified by cpplib. */
static tree
interpret_integer (token, flags)
const cpp_token *token;
unsigned int flags;
interpret_integer (const cpp_token *token, unsigned int flags)
{
tree value, type;
enum integer_type_kind itk;
......@@ -535,9 +510,7 @@ interpret_integer (token, flags)
/* Interpret TOKEN, a floating point number with FLAGS as classified
by cpplib. */
static tree
interpret_float (token, flags)
const cpp_token *token;
unsigned int flags;
interpret_float (const cpp_token *token, unsigned int flags)
{
tree type;
tree value;
......@@ -599,15 +572,14 @@ interpret_float (token, flags)
}
static tree
lex_string (str)
const cpp_string *str;
lex_string (const cpp_string *str)
{
bool wide;
tree value;
char *buf, *q;
cppchar_t c;
const unsigned char *p, *limit;
wide = str->text[0] == 'L';
p = str->text + 1 + wide;
limit = str->text + str->len - 1;
......@@ -619,7 +591,7 @@ lex_string (str)
if (c == '\\' && !ignore_escape_flag)
c = cpp_parse_escape (parse_in, &p, limit, wide);
/* Add this single character into the buffer either as a wchar_t,
a multibyte sequence, or as a single byte. */
if (wide)
......@@ -672,8 +644,7 @@ lex_string (str)
/* Converts a (possibly wide) character constant token into a tree. */
static tree
lex_charconst (token)
const cpp_token *token;
lex_charconst (const cpp_token *token)
{
cppchar_t result;
tree type, value;
......@@ -681,7 +652,7 @@ lex_charconst (token)
int unsignedp;
result = cpp_interpret_charconst (parse_in, token,
&chars_seen, &unsignedp);
&chars_seen, &unsignedp);
/* Cast to cppchar_signed_t to get correct sign-extension of RESULT
before possibly widening to HOST_WIDE_INT for build_int_2. */
......
/* Some code common to C and ObjC front ends.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
......@@ -39,17 +39,16 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "target.h"
#include "cgraph.h"
static bool c_tree_printer PARAMS ((output_buffer *, text_info *));
static tree inline_forbidden_p PARAMS ((tree *, int *, void *));
static void expand_deferred_fns PARAMS ((void));
static tree start_cdtor PARAMS ((int));
static void finish_cdtor PARAMS ((tree));
static bool c_tree_printer (output_buffer *, text_info *);
static tree inline_forbidden_p (tree *, int *, void *);
static void expand_deferred_fns (void);
static tree start_cdtor (int);
static void finish_cdtor (tree);
static GTY(()) varray_type deferred_fns;
int
c_missing_noreturn_ok_p (decl)
tree decl;
c_missing_noreturn_ok_p (tree decl)
{
/* A missing noreturn is not ok for freestanding implementations and
ok for the `main' function in hosted implementations. */
......@@ -61,8 +60,7 @@ c_missing_noreturn_ok_p (decl)
such functions always being inlined when optimizing. */
int
c_disregard_inline_limits (fn)
tree fn;
c_disregard_inline_limits (tree fn)
{
if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) != NULL)
return 1;
......@@ -71,10 +69,8 @@ c_disregard_inline_limits (fn)
}
static tree
inline_forbidden_p (nodep, walk_subtrees, fn)
tree *nodep;
int *walk_subtrees ATTRIBUTE_UNUSED;
void *fn;
inline_forbidden_p (tree *nodep, int *walk_subtrees ATTRIBUTE_UNUSED,
void *fn)
{
tree node = *nodep;
tree t;
......@@ -160,8 +156,7 @@ inline_forbidden_p (nodep, walk_subtrees, fn)
}
int
c_cannot_inline_tree_fn (fnp)
tree *fnp;
c_cannot_inline_tree_fn (tree *fnp)
{
tree fn = *fnp;
tree t;
......@@ -170,7 +165,7 @@ c_cannot_inline_tree_fn (fnp)
&& lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) == NULL)
return 1;
/* Don't auto-inline anything that might not be bound within
/* Don't auto-inline anything that might not be bound within
this unit of translation. */
if (!DECL_DECLARED_INLINE_P (fn) && !(*targetm.binds_local_p) (fn))
goto cannot_inline;
......@@ -215,7 +210,7 @@ c_cannot_inline_tree_fn (fnp)
if (! t)
return 0;
}
if (walk_tree (&DECL_SAVED_TREE (fn), inline_forbidden_p, fn, NULL))
goto cannot_inline;
......@@ -229,8 +224,7 @@ c_cannot_inline_tree_fn (fnp)
/* Called from check_global_declarations. */
bool
c_warn_unused_global_decl (decl)
tree decl;
c_warn_unused_global_decl (tree decl)
{
if (TREE_CODE (decl) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (decl))
return false;
......@@ -242,7 +236,7 @@ c_warn_unused_global_decl (decl)
/* Initialization common to C and Objective-C front ends. */
bool
c_objc_common_init ()
c_objc_common_init (void)
{
static const enum tree_code stmt_codes[] = {
c_common_stmt_codes
......@@ -282,8 +276,7 @@ c_objc_common_init ()
to RTL is only done at the end of the compilation. */
int
defer_fn (fn)
tree fn;
defer_fn (tree fn)
{
VARRAY_PUSH_TREE (deferred_fns, fn);
......@@ -293,7 +286,7 @@ defer_fn (fn)
/* Expand deferred functions for C and ObjC. */
static void
expand_deferred_fns ()
expand_deferred_fns (void)
{
unsigned int i;
......@@ -315,8 +308,7 @@ expand_deferred_fns ()
}
static tree
start_cdtor (method_type)
int method_type;
start_cdtor (int method_type)
{
tree fnname = get_file_function_name (method_type);
tree void_list_node_1 = build_tree_list (NULL_TREE, void_type_node);
......@@ -342,8 +334,7 @@ start_cdtor (method_type)
}
static void
finish_cdtor (body)
tree body;
finish_cdtor (tree body)
{
tree scope;
tree block;
......@@ -361,7 +352,7 @@ finish_cdtor (body)
/* Called at end of parsing, but before end-of-file processing. */
void
c_objc_common_finish_file ()
c_objc_common_finish_file (void)
{
if (pch_file)
c_common_write_pch ();
......@@ -420,9 +411,7 @@ c_objc_common_finish_file ()
Please notice when called, the `%' part was already skipped by the
diagnostic machinery. */
static bool
c_tree_printer (buffer, text)
output_buffer *buffer;
text_info *text;
c_tree_printer (output_buffer *buffer, text_info *text)
{
tree t = va_arg (*text->args_ptr, tree);
......
......@@ -100,22 +100,22 @@ static size_t deferred_count, deferred_size;
/* Number of deferred options scanned for -include. */
static size_t include_cursor;
static void missing_arg PARAMS ((enum opt_code));
static void set_Wimplicit PARAMS ((int));
static void complain_wrong_lang PARAMS ((size_t, int));
static void write_langs PARAMS ((char *, int));
static void print_help PARAMS ((void));
static void handle_OPT_d PARAMS ((const char *));
static void set_std_cxx98 PARAMS ((int));
static void set_std_c89 PARAMS ((int, int));
static void set_std_c99 PARAMS ((int));
static void check_deps_environment_vars PARAMS ((void));
static void handle_deferred_opts PARAMS ((void));
static void sanitize_cpp_opts PARAMS ((void));
static void add_prefixed_path PARAMS ((const char *, size_t));
static void push_command_line_include PARAMS ((void));
static void cb_file_change PARAMS ((cpp_reader *, const struct line_map *));
static void finish_options PARAMS ((void));
static void missing_arg (enum opt_code);
static void set_Wimplicit (int);
static void complain_wrong_lang (size_t, int);
static void write_langs (char *, int);
static void print_help (void);
static void handle_OPT_d (const char *);
static void set_std_cxx98 (int);
static void set_std_c89 (int, int);
static void set_std_c99 (int);
static void check_deps_environment_vars (void);
static void handle_deferred_opts (void);
static void sanitize_cpp_opts (void);
static void add_prefixed_path (const char *, size_t);
static void push_command_line_include (void);
static void cb_file_change (cpp_reader *, const struct line_map *);
static void finish_options (void);
#ifndef STDC_0_IN_SYSTEM_HEADERS
#define STDC_0_IN_SYSTEM_HEADERS 0
......@@ -123,7 +123,7 @@ static void finish_options PARAMS ((void));
/* Holds switches parsed by c_common_handle_option (), but whose
handling is deferred to c_common_post_options (). */
static void defer_opt PARAMS ((enum opt_code, const char *));
static void defer_opt (enum opt_code, const char *);
static struct deferred_opt
{
enum opt_code code;
......@@ -193,9 +193,7 @@ missing_arg (enum opt_code code)
/* Defer option CODE with argument ARG. */
static void
defer_opt (code, arg)
enum opt_code code;
const char *arg;
defer_opt (enum opt_code code, const char *arg)
{
/* FIXME: this should be in c_common_init_options, which should take
argc and argv. */
......@@ -217,8 +215,7 @@ defer_opt (code, arg)
/* Common initialization before parsing options. */
int
c_common_init_options (lang)
enum c_language_kind lang;
c_common_init_options (enum c_language_kind lang)
{
c_language = lang;
parse_in = cpp_create_reader (lang == clk_c ? CLK_GNUC89 : CLK_GNUCXX,
......@@ -388,9 +385,9 @@ c_common_handle_option (size_t scode, const char *arg, int value)
warn_sign_compare = value;
warn_switch = value;
warn_strict_aliasing = value;
/* Only warn about unknown pragmas that are not in system
headers. */
headers. */
warn_unknown_pragmas = value;
/* We save the value of warn_uninitialized, since if they put
......@@ -653,7 +650,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
case OPT_Wunknown_pragmas:
/* Set to greater than 1, so that even unknown pragmas in
system headers will be warned about. */
system headers will be warned about. */
warn_unknown_pragmas = value * 2;
break;
......@@ -667,7 +664,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
else
warn_write_strings = value;
break;
case OPT_ansi:
if (c_language == clk_c)
set_std_c89 (false, true);
......@@ -1054,8 +1051,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
/* Post-switch processing. */
bool
c_common_post_options (pfilename)
const char **pfilename;
c_common_post_options (const char **pfilename)
{
/* Canonicalize the input and output filenames. */
if (in_fname == NULL || !strcmp (in_fname, "-"))
......@@ -1153,7 +1149,7 @@ c_common_post_options (pfilename)
/* Front end initialization common to C, ObjC and C++. */
bool
c_common_init ()
c_common_init (void)
{
input_line = saved_lineno;
......@@ -1179,13 +1175,12 @@ c_common_init ()
return true;
}
/* A thin wrapper around the real parser that initializes the
/* A thin wrapper around the real parser that initializes the
integrated preprocessor after debug output has been initialized.
Also, make sure the start_source_file debug hook gets called for
the primary source file. */
void
c_common_parse_file (set_yydebug)
int set_yydebug ATTRIBUTE_UNUSED;
c_common_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
{
#if YYDEBUG != 0
yydebug = set_yydebug;
......@@ -1202,7 +1197,7 @@ c_common_parse_file (set_yydebug)
/* Common finish hook for the C, ObjC and C++ front ends. */
void
c_common_finish ()
c_common_finish (void)
{
FILE *deps_stream = NULL;
......@@ -1240,7 +1235,7 @@ c_common_finish ()
rather than overwriting it, and like Sun's compiler
SUNPRO_DEPENDENCIES suppresses the dependency on the main file. */
static void
check_deps_environment_vars ()
check_deps_environment_vars (void)
{
char *spec;
......@@ -1278,7 +1273,7 @@ check_deps_environment_vars ()
/* Handle deferred command line switches. */
static void
handle_deferred_opts ()
handle_deferred_opts (void)
{
size_t i;
......@@ -1294,7 +1289,7 @@ handle_deferred_opts ()
/* These settings are appropriate for GCC, but not necessarily so for
cpplib as a library. */
static void
sanitize_cpp_opts ()
sanitize_cpp_opts (void)
{
/* If we don't know what style of dependencies to output, complain
if any other dependency switches have been given. */
......@@ -1326,9 +1321,7 @@ sanitize_cpp_opts ()
/* Add include path with a prefix at the front of its name. */
static void
add_prefixed_path (suffix, chain)
const char *suffix;
size_t chain;
add_prefixed_path (const char *suffix, size_t chain)
{
char *path;
const char *prefix;
......@@ -1348,7 +1341,7 @@ add_prefixed_path (suffix, chain)
/* Handle -D, -U, -A, -imacros, and the first -include. */
static void
finish_options ()
finish_options (void)
{
if (!cpp_opts->preprocessed)
{
......@@ -1403,15 +1396,15 @@ finish_options ()
/* Give CPP the next file given by -include, if any. */
static void
push_command_line_include ()
push_command_line_include (void)
{
if (cpp_opts->preprocessed)
return;
while (include_cursor < deferred_count)
{
struct deferred_opt *opt = &deferred_opts[include_cursor++];
if (opt->code == OPT_include && cpp_push_include (parse_in, opt->arg))
return;
}
......@@ -1428,9 +1421,8 @@ push_command_line_include ()
/* File change callback. Has to handle -include files. */
static void
cb_file_change (pfile, new_map)
cpp_reader *pfile ATTRIBUTE_UNUSED;
const struct line_map *new_map;
cb_file_change (cpp_reader *pfile ATTRIBUTE_UNUSED,
const struct line_map *new_map)
{
if (flag_preprocess_only)
pp_file_change (new_map);
......@@ -1444,8 +1436,7 @@ cb_file_change (pfile, new_map)
/* Set the C 89 standard (with 1994 amendments if C94, without GNU
extensions if ISO). There is no concept of gnu94. */
static void
set_std_c89 (c94, iso)
int c94, iso;
set_std_c89 (int c94, int iso)
{
cpp_set_lang (parse_in, c94 ? CLK_STDC94: iso ? CLK_STDC89: CLK_GNUC89);
flag_iso = iso;
......@@ -1460,8 +1451,7 @@ set_std_c89 (c94, iso)
/* Set the C 99 standard (without GNU extensions if ISO). */
static void
set_std_c99 (iso)
int iso;
set_std_c99 (int iso)
{
cpp_set_lang (parse_in, iso ? CLK_STDC99: CLK_GNUC99);
flag_no_asm = iso;
......@@ -1475,8 +1465,7 @@ set_std_c99 (iso)
/* Set the C++ 98 standard (without GNU extensions if ISO). */
static void
set_std_cxx98 (iso)
int iso;
set_std_cxx98 (int iso)
{
cpp_set_lang (parse_in, iso ? CLK_CXX98: CLK_GNUCXX);
flag_no_gnu_keywords = iso;
......@@ -1487,8 +1476,7 @@ set_std_cxx98 (iso)
/* Handle setting implicit to ON. */
static void
set_Wimplicit (on)
int on;
set_Wimplicit (int on)
{
warn_implicit = on;
warn_implicit_int = on;
......@@ -1504,8 +1492,7 @@ set_Wimplicit (on)
/* Args to -d specify what to dump. Silently ignore
unrecognized options; they may be aimed at toplev.c. */
static void
handle_OPT_d (arg)
const char *arg;
handle_OPT_d (const char *arg)
{
char c;
......@@ -1526,9 +1513,7 @@ handle_OPT_d (arg)
/* Write a slash-separated list of languages in FLAGS to BUF. */
static void
write_langs (buf, flags)
char *buf;
int flags;
write_langs (char *buf, int flags)
{
*buf = '\0';
if (flags & CL_C)
......@@ -1549,9 +1534,7 @@ write_langs (buf, flags)
/* Complain that switch OPT_INDEX does not apply to this front end. */
static void
complain_wrong_lang (opt_index, on)
size_t opt_index;
int on;
complain_wrong_lang (size_t opt_index, int on)
{
char ok_langs[60], bad_langs[60];
int ok_flags = cl_options[opt_index].flags;
......@@ -1566,7 +1549,7 @@ complain_wrong_lang (opt_index, on)
/* Handle --help output. */
static void
print_help ()
print_help (void)
{
/* To keep the lines from getting too long for some compilers, limit
to about 500 characters (6 lines) per chunk. */
......
/* Precompiled header implementation for the C languages.
Copyright (C) 2000, 2002 Free Software Foundation, Inc.
Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
......@@ -48,7 +48,7 @@ static FILE *pch_outfile;
static long asm_file_startpos;
static const char * get_ident PARAMS((void));
static const char *get_ident (void);
/* Compute an appropriate 8-byte magic number for the PCH file, so that
utilities like file(1) can identify it, and so that GCC can quickly
......@@ -56,7 +56,7 @@ static const char * get_ident PARAMS((void));
format. */
static const char *
get_ident()
get_ident(void)
{
static char result[IDENT_LENGTH];
static const char template[IDENT_LENGTH] = "gpch.011";
......@@ -75,7 +75,7 @@ get_ident()
compilation. */
void
pch_init ()
pch_init (void)
{
FILE *f;
struct c_pch_validity v;
......@@ -111,7 +111,7 @@ pch_init ()
will produce a PCH file. */
void
c_common_write_pch ()
c_common_write_pch (void)
{
char *buf;
long asm_file_end;
......@@ -157,10 +157,7 @@ c_common_write_pch ()
in this compilation. */
int
c_common_valid_pch (pfile, name, fd)
cpp_reader *pfile;
const char *name;
int fd;
c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
{
int sizeread;
int result;
......@@ -232,11 +229,8 @@ c_common_valid_pch (pfile, name, fd)
by ORIG_NAME. */
void
c_common_read_pch (pfile, name, fd, orig_name)
cpp_reader *pfile;
const char *name;
int fd;
const char *orig_name ATTRIBUTE_UNUSED;
c_common_read_pch (cpp_reader *pfile, const char *name,
int fd, const char *orig_name ATTRIBUTE_UNUSED)
{
FILE *f;
struct c_pch_header h;
......
......@@ -40,30 +40,28 @@ static struct
} print;
/* General output routines. */
static void scan_translation_unit PARAMS ((cpp_reader *));
static void scan_translation_unit_trad PARAMS ((cpp_reader *));
static void account_for_newlines PARAMS ((const uchar *, size_t));
static int dump_macro PARAMS ((cpp_reader *, cpp_hashnode *, void *));
static void scan_translation_unit (cpp_reader *);
static void scan_translation_unit_trad (cpp_reader *);
static void account_for_newlines (const uchar *, size_t);
static int dump_macro (cpp_reader *, cpp_hashnode *, void *);
static void print_line PARAMS ((const struct line_map *, unsigned int,
const char *));
static void maybe_print_line PARAMS ((const struct line_map *, unsigned int));
static void print_line (const struct line_map *, unsigned int,
const char *);
static void maybe_print_line (const struct line_map *, unsigned int);
/* Callback routines for the parser. Most of these are active only
in specific modes. */
static void cb_line_change PARAMS ((cpp_reader *, const cpp_token *, int));
static void cb_define PARAMS ((cpp_reader *, unsigned int, cpp_hashnode *));
static void cb_undef PARAMS ((cpp_reader *, unsigned int, cpp_hashnode *));
static void cb_include PARAMS ((cpp_reader *, unsigned int,
const unsigned char *, const char *, int));
static void cb_ident PARAMS ((cpp_reader *, unsigned int,
const cpp_string *));
static void cb_def_pragma PARAMS ((cpp_reader *, unsigned int));
static void cb_line_change (cpp_reader *, const cpp_token *, int);
static void cb_define (cpp_reader *, unsigned int, cpp_hashnode *);
static void cb_undef (cpp_reader *, unsigned int, cpp_hashnode *);
static void cb_include (cpp_reader *, unsigned int, const unsigned char *,
const char *, int);
static void cb_ident (cpp_reader *, unsigned int, const cpp_string *);
static void cb_def_pragma (cpp_reader *, unsigned int);
/* Preprocess and output. */
void
preprocess_file (pfile)
cpp_reader *pfile;
preprocess_file (cpp_reader *pfile)
{
/* A successful cpp_read_main_file guarantees that we can call
cpp_scan_nooutput or cpp_get_token next. */
......@@ -90,8 +88,7 @@ preprocess_file (pfile)
/* Set up the callbacks as appropriate. */
void
init_pp_output (out_stream)
FILE *out_stream;
init_pp_output (FILE *out_stream)
{
cpp_callbacks *cb = cpp_get_callbacks (parse_in);
......@@ -129,8 +126,7 @@ init_pp_output (out_stream)
/* Writes out the preprocessed file, handling spacing and paste
avoidance issues. */
static void
scan_translation_unit (pfile)
cpp_reader *pfile;
scan_translation_unit (cpp_reader *pfile)
{
bool avoid_paste = false;
......@@ -178,9 +174,7 @@ scan_translation_unit (pfile)
/* Adjust print.line for newlines embedded in output. */
static void
account_for_newlines (str, len)
const uchar *str;
size_t len;
account_for_newlines (const uchar *str, size_t len)
{
while (len--)
if (*str++ == '\n')
......@@ -189,8 +183,7 @@ account_for_newlines (str, len)
/* Writes out a traditionally preprocessed file. */
static void
scan_translation_unit_trad (pfile)
cpp_reader *pfile;
scan_translation_unit_trad (cpp_reader *pfile)
{
while (_cpp_read_logical_line_trad (pfile))
{
......@@ -207,9 +200,7 @@ scan_translation_unit_trad (pfile)
different line to the current one, output the required newlines or
a line marker, and return 1. Otherwise return 0. */
static void
maybe_print_line (map, line)
const struct line_map *map;
unsigned int line;
maybe_print_line (const struct line_map *map, unsigned int line)
{
/* End the previous line of text. */
if (print.printed)
......@@ -234,10 +225,7 @@ maybe_print_line (map, line)
/* Output a line marker for logical line LINE. Special flags are "1"
or "2" indicating entering or leaving a file. */
static void
print_line (map, line, special_flags)
const struct line_map *map;
unsigned int line;
const char *special_flags;
print_line (const struct line_map *map, unsigned int line, const char *special_flags)
{
/* End any previous line of text. */
if (print.printed)
......@@ -272,10 +260,7 @@ print_line (map, line, special_flags)
/* Called when a line of output is started. TOKEN is the first token
of the line, and at end of file will be CPP_EOF. */
static void
cb_line_change (pfile, token, parsing_args)
cpp_reader *pfile;
const cpp_token *token;
int parsing_args;
cb_line_change (cpp_reader *pfile, const cpp_token *token, int parsing_args)
{
if (token->type == CPP_EOF || parsing_args)
return;
......@@ -303,10 +288,8 @@ cb_line_change (pfile, token, parsing_args)
}
static void
cb_ident (pfile, line, str)
cpp_reader *pfile ATTRIBUTE_UNUSED;
unsigned int line;
const cpp_string * str;
cb_ident (cpp_reader *pfile ATTRIBUTE_UNUSED, unsigned int line,
const cpp_string *str)
{
maybe_print_line (print.map, line);
fprintf (print.outf, "#ident \"%s\"\n", str->text);
......@@ -314,10 +297,7 @@ cb_ident (pfile, line, str)
}
static void
cb_define (pfile, line, node)
cpp_reader *pfile;
unsigned int line;
cpp_hashnode *node;
cb_define (cpp_reader *pfile, unsigned int line, cpp_hashnode *node)
{
maybe_print_line (print.map, line);
fputs ("#define ", print.outf);
......@@ -334,10 +314,8 @@ cb_define (pfile, line, node)
}
static void
cb_undef (pfile, line, node)
cpp_reader *pfile ATTRIBUTE_UNUSED;
unsigned int line;
cpp_hashnode *node;
cb_undef (cpp_reader *pfile ATTRIBUTE_UNUSED, unsigned int line,
cpp_hashnode *node)
{
maybe_print_line (print.map, line);
fprintf (print.outf, "#undef %s\n", NODE_NAME (node));
......@@ -345,12 +323,8 @@ cb_undef (pfile, line, node)
}
static void
cb_include (pfile, line, dir, header, angle_brackets)
cpp_reader *pfile ATTRIBUTE_UNUSED;
unsigned int line;
const unsigned char *dir;
const char *header;
int angle_brackets;
cb_include (cpp_reader *pfile ATTRIBUTE_UNUSED, unsigned int line,
const unsigned char *dir, const char *header, int angle_brackets)
{
maybe_print_line (print.map, line);
if (angle_brackets)
......@@ -365,8 +339,7 @@ cb_include (pfile, line, dir, header, angle_brackets)
pointing to freed memory, and so must not be dereferenced. */
void
pp_file_change (map)
const struct line_map *map;
pp_file_change (const struct line_map *map)
{
const char *flags = "";
......@@ -398,9 +371,7 @@ pp_file_change (map)
/* Copy a #pragma directive to the preprocessed output. */
static void
cb_def_pragma (pfile, line)
cpp_reader *pfile;
unsigned int line;
cb_def_pragma (cpp_reader *pfile, unsigned int line)
{
maybe_print_line (print.map, line);
fputs ("#pragma ", print.outf);
......@@ -410,10 +381,7 @@ cb_def_pragma (pfile, line)
/* Dump out the hash table. */
static int
dump_macro (pfile, node, v)
cpp_reader *pfile;
cpp_hashnode *node;
void *v ATTRIBUTE_UNUSED;
dump_macro (cpp_reader *pfile, cpp_hashnode *node, void *v ATTRIBUTE_UNUSED)
{
if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
{
......
/* Various declarations for the C and C++ pretty-printers.
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
This file is part of GCC.
......@@ -32,7 +32,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
typedef struct c_pretty_print_info *c_pretty_printer;
/* The type of a C pretty-printer 'member' function. */
typedef void (*c_pretty_print_fn) PARAMS ((c_pretty_printer, tree));
typedef void (*c_pretty_print_fn) (c_pretty_printer, tree);
struct c_pretty_print_info
{
......@@ -144,22 +144,22 @@ struct c_pretty_print_info
macro must be overridden by any subclass of c_pretty_print_info. */
#define pp_c_base(PP) (PP)
extern void pp_c_pretty_printer_init PARAMS ((c_pretty_printer));
extern void pp_c_pretty_printer_init (c_pretty_printer);
/* Declarations. */
void pp_c_attributes PARAMS ((c_pretty_printer, tree));
void pp_c_cv_qualifier PARAMS ((c_pretty_printer, int));
void pp_c_parameter_declaration_clause PARAMS ((c_pretty_printer, tree));
void pp_c_declaration PARAMS ((c_pretty_printer, tree));
void pp_c_attributes (c_pretty_printer, tree);
void pp_c_cv_qualifier (c_pretty_printer, int);
void pp_c_parameter_declaration_clause (c_pretty_printer, tree);
void pp_c_declaration (c_pretty_printer, tree);
/* Statements. */
void pp_c_statement PARAMS ((c_pretty_printer, tree));
void pp_c_statement (c_pretty_printer, tree);
/* Expressions. */
void pp_c_expression PARAMS ((c_pretty_printer, tree));
void pp_c_logical_or_expression PARAMS ((c_pretty_printer, tree));
void pp_c_expression_list PARAMS ((c_pretty_printer, tree));
void pp_c_cast_expression PARAMS ((c_pretty_printer, tree));
void pp_c_postfix_expression PARAMS ((c_pretty_printer, tree));
void pp_c_initializer PARAMS ((c_pretty_printer, tree));
void pp_c_literal PARAMS ((c_pretty_printer, tree));
void pp_c_expression (c_pretty_printer, tree);
void pp_c_logical_or_expression (c_pretty_printer, tree);
void pp_c_expression_list (c_pretty_printer, tree);
void pp_c_cast_expression (c_pretty_printer, tree);
void pp_c_postfix_expression (c_pretty_printer, tree);
void pp_c_initializer (c_pretty_printer, tree);
void pp_c_literal (c_pretty_printer, tree);
#endif /* GCC_C_PRETTY_PRINTER */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment