/* Top level of GNU C compiler
- Copyright (C) 1987, 88, 89, 92-8, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1987, 88, 89, 92-98, 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
extern void print_rtl_with_bb ();
void rest_of_decl_compilation ();
-void error_with_file_and_line PVPROTO((char *file, int line, char *s, ...));
-void error_with_decl PVPROTO((tree decl, char *s, ...));
-void error PVPROTO((char *s, ...));
-void fatal PVPROTO((char *s, ...));
-void warning_with_file_and_line PVPROTO((char *file, int line, char *s, ...));
-void warning_with_decl PVPROTO((tree decl, char *s, ...));
-void warning PVPROTO((char *s, ...));
-void pedwarn PVPROTO((char *s, ...));
-void pedwarn_with_decl PVPROTO((tree decl, char *s, ...));
-void pedwarn_with_file_and_line PVPROTO((char *file, int line, char *s, ...));
-void sorry PVPROTO((char *s, ...));
-static void set_target_switch PROTO((char *));
+static void set_target_switch PROTO((const char *));
static char *decl_name PROTO((tree, int));
-static void vmessage PROTO((char *, char *, va_list));
-static void v_message_with_file_and_line PROTO((char *, int, char *,
- char *, va_list));
-static void v_message_with_decl PROTO((tree, char *, char *, va_list));
+static void vmessage PROTO((const char *, const char *, va_list));
+static void v_message_with_file_and_line PROTO((const char *, int,
+ const char *, const char *,
+ va_list));
+static void v_message_with_decl PROTO((tree, const char *,
+ const char *, va_list));
static void file_and_line_for_asm PROTO((rtx, char **, int *));
-static void v_error_with_file_and_line PROTO((char *, int, char *, va_list));
-static void v_error_with_decl PROTO((tree, char *, va_list));
-static void v_error_for_asm PROTO((rtx, char *, va_list));
-static void verror PROTO((char *, va_list));
-static void vfatal PROTO((char *, va_list)) ATTRIBUTE_NORETURN;
-static void v_warning_with_file_and_line PROTO ((char *, int, char *, va_list));
-static void v_warning_with_decl PROTO((tree, char *, va_list));
-static void v_warning_for_asm PROTO((rtx, char *, va_list));
-static void vwarning PROTO((char *, va_list));
-static void vpedwarn PROTO((char *, va_list));
-static void v_pedwarn_with_decl PROTO((tree, char *, va_list));
-static void v_pedwarn_with_file_and_line PROTO((char *, int, char *, va_list));
-static void vsorry PROTO((char *, va_list));
-static void v_really_sorry PROTO((char *, va_list)) ATTRIBUTE_NORETURN;
+static void v_error_with_file_and_line PROTO((const char *, int,
+ const char *, va_list));
+static void v_error_with_decl PROTO((tree, const char *, va_list));
+static void v_error_for_asm PROTO((rtx, const char *, va_list));
+static void verror PROTO((const char *, va_list));
+static void vfatal PROTO((const char *, va_list)) ATTRIBUTE_NORETURN;
+static void v_warning_with_file_and_line PROTO ((const char *, int,
+ const char *, va_list));
+static void v_warning_with_decl PROTO((tree, const char *, va_list));
+static void v_warning_for_asm PROTO((rtx, const char *, va_list));
+static void vwarning PROTO((const char *, va_list));
+static void vpedwarn PROTO((const char *, va_list));
+static void v_pedwarn_with_decl PROTO((tree, const char *, va_list));
+static void v_pedwarn_with_file_and_line PROTO((const char *, int,
+ const char *, va_list));
+static void vsorry PROTO((const char *, va_list));
+static void v_really_sorry PROTO((const char *, va_list)) ATTRIBUTE_NORETURN;
static void float_signal PROTO((int)) ATTRIBUTE_NORETURN;
static void pipe_closed PROTO((int)) ATTRIBUTE_NORETURN;
#ifdef ASM_IDENTIFY_LANGUAGE
/* This might or might not be used in ASM_IDENTIFY_LANGUAGE. */
static void output_lang_identify PROTO((FILE *)) ATTRIBUTE_UNUSED;
#endif
-static void open_dump_file PROTO((char *, char *));
+static void open_dump_file PROTO((const char *, const char *));
static void close_dump_file PROTO((void (*) (FILE *, rtx), rtx));
-static void dump_rtl PROTO((char *, tree, void (*) (FILE *, rtx), rtx));
-static void clean_dump_file PROTO((char *));
+static void dump_rtl PROTO((const char *, tree, void (*) (FILE *, rtx), rtx));
+static void clean_dump_file PROTO((const char *));
static void compile_file PROTO((char *));
static void display_help PROTO ((void));
-static void print_version PROTO((FILE *, char *));
-static int print_single_switch PROTO((FILE *, int, int, char *, char *, char *,
- char *, char *));
-static void print_switch_values PROTO((FILE *, int, int, char *, char *,
- char *));
+static void print_version PROTO((FILE *, const char *));
+static int print_single_switch PROTO((FILE *, int, int, const char *,
+ const char *, const char *,
+ const char *, const char *));
+static void print_switch_values PROTO((FILE *, int, int, const char *,
+ const char *, const char *));
void print_rtl_graph_with_bb PROTO ((const char *, const char *, rtx));
void clean_graph_dump_file PROTO ((const char *, const char *));
/* Name to use as base of names for dump output files. */
-char *dump_base_name;
+const char *dump_base_name;
/* Bit flags that specify the machine subtype we are compiling for.
Bits are tested using macros TARGET_... defined in the tm.h file
/* Table of supported debugging formats. */
static struct
{
- char * arg;
+ const char * arg;
/* Since PREFERRED_DEBUGGING_TYPE isn't necessarily a
constant expression, we use NO_DEBUG in its place. */
enum debug_info_type debug_type;
int use_extensions_p;
- char * description;
+ const char * description;
} *da,
debug_args[] =
{
typedef struct
{
- char * string;
+ const char * string;
int * variable;
int on_value;
- char * description;
+ const char * description;
}
lang_independent_options;
int flag_leading_underscore = -1;
/* The user symbol prefix after having resolved same. */
-char *user_label_prefix;
+const char *user_label_prefix;
/* A default for same. */
#ifndef USER_LABEL_PREFIX
static struct lang_opt
{
- char * option;
- char * description;
+ const char * option;
+ const char * description;
}
documented_lang_options[] =
{
struct
{
- char * name;
+ const char * name;
int value;
- char * description;
+ const char * description;
}
target_switches [] = TARGET_SWITCHES;
#ifdef TARGET_OPTIONS
struct
{
- char * prefix;
- char ** variable;
- char * description;
+ const char * prefix;
+ const char ** variable;
+ const char * description;
}
target_options [] = TARGET_OPTIONS;
#endif
void
print_time (str, total)
- char *str;
+ const char *str;
int total;
{
fprintf (stderr,
void
pfatal_with_name (name)
- char *name;
+ const char *name;
{
fprintf (stderr, "%s: ", progname);
perror (name);
void
fatal_io_error (name)
- char *name;
+ const char *name;
{
fprintf (stderr, "%s: %s: I/O error\n", progname, name);
exit (FATAL_EXIT_CODE);
void
fatal_insn (message, insn)
- char *message;
+ const char *message;
rtx insn;
{
error (message);
void
default_print_error_function (file)
- char *file;
+ const char *file;
{
if (last_error_function != current_function_decl)
{
- char *kind = "function";
+ const char *kind = "function";
if (current_function_decl != 0
&& TREE_CODE (TREE_TYPE (current_function_decl)) == METHOD_TYPE)
kind = "method";
/* Called by report_error_function to print out function name.
* Default may be overridden by language front-ends. */
-void (*print_error_function) PROTO((char *)) = default_print_error_function;
+void (*print_error_function) PROTO((const char *)) =
+ default_print_error_function;
/* Prints out, if necessary, the name of the current function
that caused an error. Called from all error and warning functions. */
void
report_error_function (file)
- char *file;
+ const char *file;
{
struct file_stack *p;
static void
vmessage (prefix, s, ap)
- char *prefix;
- char *s;
+ const char *prefix;
+ const char *s;
va_list ap;
{
if (prefix)
static void
v_message_with_file_and_line (file, line, prefix, s, ap)
- char *file;
+ const char *file;
int line;
- char *prefix;
- char *s;
+ const char *prefix;
+ const char *s;
va_list ap;
{
if (file)
static void
v_message_with_decl (decl, prefix, s, ap)
tree decl;
- char *prefix;
- char *s;
+ const char *prefix;
+ const char *s;
va_list ap;
{
- char *p;
+ const char *p;
fprintf (stderr, "%s:%d: ",
DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
if (*p == '%') /* Print the name. */
{
- char *n = (DECL_NAME (decl)
+ const char *n = (DECL_NAME (decl)
? (*decl_printable_name) (decl, 2)
: "((anonymous))");
fputs (n, stderr);
static void
v_error_with_file_and_line (file, line, s, ap)
- char *file;
+ const char *file;
int line;
- char *s;
+ const char *s;
va_list ap;
{
count_error (0);
}
void
-error_with_file_and_line VPROTO((char *file, int line, char *s, ...))
+error_with_file_and_line VPROTO((const char *file, int line,
+ const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *file;
+ const char *file;
int line;
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- file = va_arg (ap, char *);
+ file = va_arg (ap, const char *);
line = va_arg (ap, int);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_error_with_file_and_line (file, line, s, ap);
static void
v_error_with_decl (decl, s, ap)
tree decl;
- char *s;
+ const char *s;
va_list ap;
{
count_error (0);
}
void
-error_with_decl VPROTO((tree decl, char *s, ...))
+error_with_decl VPROTO((tree decl, const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
tree decl;
- char *s;
+ const char *s;
#endif
va_list ap;
#ifndef ANSI_PROTOTYPES
decl = va_arg (ap, tree);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_error_with_decl (decl, s, ap);
static void
v_error_for_asm (insn, s, ap)
rtx insn;
- char *s;
+ const char *s;
va_list ap;
{
char *file;
}
void
-error_for_asm VPROTO((rtx insn, char *s, ...))
+error_for_asm VPROTO((rtx insn, const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
rtx insn;
- char *s;
+ const char *s;
#endif
va_list ap;
#ifndef ANSI_PROTOTYPES
insn = va_arg (ap, rtx);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_error_for_asm (insn, s, ap);
static void
verror (s, ap)
- char *s;
+ const char *s;
va_list ap;
{
v_error_with_file_and_line (input_filename, lineno, s, ap);
}
void
-error VPROTO((char *s, ...))
+error VPROTO((const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
verror (s, ap);
static void
vfatal (s, ap)
- char *s;
+ const char *s;
va_list ap;
{
verror (s, ap);
}
void
-fatal VPROTO((char *s, ...))
+fatal VPROTO((const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
vfatal (s, ap);
static void
v_warning_with_file_and_line (file, line, s, ap)
- char *file;
+ const char *file;
int line;
- char *s;
+ const char *s;
va_list ap;
{
if (count_error (1))
}
void
-warning_with_file_and_line VPROTO((char *file, int line, char *s, ...))
+warning_with_file_and_line VPROTO((const char *file, int line,
+ const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *file;
+ const char *file;
int line;
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- file = va_arg (ap, char *);
+ file = va_arg (ap, const char *);
line = va_arg (ap, int);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_warning_with_file_and_line (file, line, s, ap);
static void
v_warning_with_decl (decl, s, ap)
tree decl;
- char *s;
+ const char *s;
va_list ap;
{
if (count_error (1))
}
void
-warning_with_decl VPROTO((tree decl, char *s, ...))
+warning_with_decl VPROTO((tree decl, const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
tree decl;
- char *s;
+ const char *s;
#endif
va_list ap;
#ifndef ANSI_PROTOTYPES
decl = va_arg (ap, tree);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_warning_with_decl (decl, s, ap);
static void
v_warning_for_asm (insn, s, ap)
rtx insn;
- char *s;
+ const char *s;
va_list ap;
{
if (count_error (1))
}
void
-warning_for_asm VPROTO((rtx insn, char *s, ...))
+warning_for_asm VPROTO((rtx insn, const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
rtx insn;
- char *s;
+ const char *s;
#endif
va_list ap;
#ifndef ANSI_PROTOTYPES
insn = va_arg (ap, rtx);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_warning_for_asm (insn, s, ap);
static void
vwarning (s, ap)
- char *s;
+ const char *s;
va_list ap;
{
v_warning_with_file_and_line (input_filename, lineno, s, ap);
}
void
-warning VPROTO((char *s, ...))
+warning VPROTO((const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
vwarning (s, ap);
static void
vpedwarn (s, ap)
- char *s;
+ const char *s;
va_list ap;
{
if (flag_pedantic_errors)
}
void
-pedwarn VPROTO((char *s, ...))
+pedwarn VPROTO((const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
vpedwarn (s, ap);
static void
v_pedwarn_with_decl (decl, s, ap)
tree decl;
- char *s;
+ const char *s;
va_list ap;
{
/* We don't want -pedantic-errors to cause the compilation to fail from
}
void
-pedwarn_with_decl VPROTO((tree decl, char *s, ...))
+pedwarn_with_decl VPROTO((tree decl, const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
tree decl;
- char *s;
+ const char *s;
#endif
va_list ap;
#ifndef ANSI_PROTOTYPES
decl = va_arg (ap, tree);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_pedwarn_with_decl (decl, s, ap);
static void
v_pedwarn_with_file_and_line (file, line, s, ap)
- char *file;
+ const char *file;
int line;
- char *s;
+ const char *s;
va_list ap;
{
if (flag_pedantic_errors)
}
void
-pedwarn_with_file_and_line VPROTO((char *file, int line, char *s, ...))
+pedwarn_with_file_and_line VPROTO((const char *file, int line,
+ const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *file;
+ const char *file;
int line;
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- file = va_arg (ap, char *);
+ file = va_arg (ap, const char *);
line = va_arg (ap, int);
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_pedwarn_with_file_and_line (file, line, s, ap);
static void
vsorry (s, ap)
- char *s;
+ const char *s;
va_list ap;
{
sorrycount++;
}
void
-sorry VPROTO((char *s, ...))
+sorry VPROTO((const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
vsorry (s, ap);
static void
v_really_sorry (s, ap)
- char *s;
+ const char *s;
va_list ap;
{
sorrycount++;
}
void
-really_sorry VPROTO((char *s, ...))
+really_sorry VPROTO((const char *s, ...))
{
#ifndef ANSI_PROTOTYPES
- char *s;
+ const char *s;
#endif
va_list ap;
VA_START (ap, s);
#ifndef ANSI_PROTOTYPES
- s = va_arg (ap, char *);
+ s = va_arg (ap, const char *);
#endif
v_really_sorry (s, ap);
void
botch (s)
- char * s ATTRIBUTE_UNUSED;
+ const char * s ATTRIBUTE_UNUSED;
{
abort ();
}
void
output_quoted_string (asm_file, string)
FILE *asm_file;
- char *string;
+ const char *string;
{
#ifdef OUTPUT_QUOTED_STRING
OUTPUT_QUOTED_STRING (asm_file, string);
void
output_file_directive (asm_file, input_name)
FILE *asm_file;
- char *input_name;
+ const char *input_name;
{
int len = strlen (input_name);
- char *na = input_name + len;
+ const char *na = input_name + len;
/* NA gets INPUT_NAME sans directory names. */
while (na > input_name)
/* Routine to open a dump file. */
static void
open_dump_file (suffix, function_name)
- char *suffix;
- char *function_name;
+ const char *suffix;
+ const char *function_name;
{
char *dumpname;
/* Routine to dump rtl into a file. */
static void
dump_rtl (suffix, decl, func, insns)
- char *suffix;
+ const char *suffix;
tree decl;
void (*func) PROTO ((FILE *, rtx));
rtx insns;
/* Routine to empty a dump file. */
static void
clean_dump_file (suffix)
- char *suffix;
+ const char *suffix;
{
char *dumpname;
void
rest_of_decl_compilation (decl, asmspec, top_level, at_end)
tree decl;
- char *asmspec;
+ const char *asmspec;
int top_level;
int at_end;
{
{
int undoc;
unsigned long i;
- char * lang;
+ const char * lang;
#ifndef USE_CPPLIB
printf ("Usage: %s input [switches]\n", progname);
for (i = NUM_ELEM (f_options); i--;)
{
- char * description = f_options[i].description;
+ const char * description = f_options[i].description;
if (description != NULL && * description != 0)
printf (" -f%-21s %s\n",
for (i = NUM_ELEM (W_options); i--;)
{
- char * description = W_options[i].description;
+ const char * description = W_options[i].description;
if (description != NULL && * description != 0)
printf (" -W%-21s %s\n",
for (i = 0; i < NUM_ELEM (documented_lang_options); i++)
{
- char * description = documented_lang_options[i].description;
- char * option = documented_lang_options[i].option;
+ const char * description = documented_lang_options[i].description;
+ const char * option = documented_lang_options[i].option;
if (description == NULL)
{
for (i = NUM_ELEM (target_switches); i--;)
{
- char * option = target_switches[i].name;
- char * description = target_switches[i].description;
+ const char * option = target_switches[i].name;
+ const char * description = target_switches[i].description;
if (option == NULL || * option == 0)
continue;
#ifdef TARGET_OPTIONS
for (i = NUM_ELEM (target_options); i--;)
{
- char * option = target_options[i].prefix;
- char * description = target_options[i].description;
+ const char * option = target_options[i].prefix;
+ const char * description = target_options[i].description;
if (option == NULL || * option == 0)
continue;
-gdwarf -g3 is equivalent to -gdwarf3. */
static int type_explicitly_set_p = 0;
/* Indexed by enum debug_info_type. */
- static char *debug_type_names[] =
+ static const char *debug_type_names[] =
{
"none", "stabs", "coff", "dwarf-1", "dwarf-2", "xcoff"
};
static void
set_target_switch (name)
- char *name;
+ const char *name;
{
register size_t j;
int valid = 0;
static void
print_version (file, indent)
FILE *file;
- char *indent;
+ const char *indent;
{
fprintf (file, "%s%s%s version %s", indent, *indent != 0 ? " " : "",
language_string, version_string);
print_single_switch (file, pos, max, indent, sep, term, type, name)
FILE *file;
int pos, max;
- char *indent, *sep, *term, *type, *name;
+ const char *indent, *sep, *term, *type, *name;
{
/* The ultrix fprintf returns 0 on success, so compute the result we want
here since we need it for the following test. */
print_switch_values (file, pos, max, indent, sep, term)
FILE *file;
int pos, max;
- char *indent, *sep, *term;
+ const char *indent, *sep, *term;
{
size_t j;
char **p;
extern int count_error PROTO ((int));
extern void strip_off_ending PROTO ((char *, int));
-extern void print_time PROTO ((char *, int));
+extern void print_time PROTO ((const char *, int));
extern void debug_start_source_file PROTO ((char *));
extern void debug_end_source_file PROTO ((unsigned));
extern void debug_define PROTO ((unsigned, char *));
extern void debug_undef PROTO ((unsigned, char *));
-extern void fatal PVPROTO ((char *, ...))
+extern void fatal PVPROTO ((const char *, ...))
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-extern void fatal_io_error PROTO ((char *)) ATTRIBUTE_NORETURN;
-extern void pfatal_with_name PROTO ((char *)) ATTRIBUTE_NORETURN;
+extern void fatal_io_error PROTO ((const char *))
+ ATTRIBUTE_NORETURN;
+extern void pfatal_with_name PROTO ((const char *))
+ ATTRIBUTE_NORETURN;
extern void fatal_insn_not_found PROTO ((struct rtx_def *))
ATTRIBUTE_NORETURN;
-extern void fatal_insn PROTO ((char *, struct rtx_def *))
+extern void fatal_insn PROTO ((const char *, struct rtx_def *))
ATTRIBUTE_NORETURN;
-extern void warning PVPROTO ((char *, ...))
- ATTRIBUTE_PRINTF_1;
-extern void error PVPROTO ((char *, ...))
+extern void warning PVPROTO ((const char *, ...))
ATTRIBUTE_PRINTF_1;
-extern void pedwarn PVPROTO ((char *, ...))
+extern void error PVPROTO ((const char *, ...))
ATTRIBUTE_PRINTF_1;
-extern void pedwarn_with_file_and_line PVPROTO ((char *, int, char *, ...))
- ATTRIBUTE_PRINTF_3;
-extern void warning_with_file_and_line PVPROTO ((char *, int, char *, ...))
- ATTRIBUTE_PRINTF_3;
-extern void error_with_file_and_line PVPROTO ((char *, int, char *, ...))
- ATTRIBUTE_PRINTF_3;
-extern void sorry PVPROTO ((char *s, ...))
+extern void pedwarn PVPROTO ((const char *, ...))
ATTRIBUTE_PRINTF_1;
-extern void really_sorry PVPROTO((char *s, ...))
+extern void pedwarn_with_file_and_line PVPROTO ((const char *, int,
+ const char *, ...))
+ ATTRIBUTE_PRINTF_3;
+extern void warning_with_file_and_line PVPROTO ((const char *, int,
+ const char *, ...))
+ ATTRIBUTE_PRINTF_3;
+extern void error_with_file_and_line PVPROTO ((const char *, int,
+ const char *, ...))
+ ATTRIBUTE_PRINTF_3;
+extern void sorry PVPROTO ((const char *, ...))
+ ATTRIBUTE_PRINTF_1;
+extern void really_sorry PVPROTO((const char *, ...))
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-extern void default_print_error_function PROTO ((char *));
-extern void report_error_function PROTO ((char *));
+extern void default_print_error_function PROTO ((const char *));
+extern void report_error_function PROTO ((const char *));
-extern void rest_of_decl_compilation PROTO ((union tree_node *, char *, int, int));
+extern void rest_of_decl_compilation PROTO ((union tree_node *,
+ const char *, int, int));
extern void rest_of_type_compilation PROTO ((union tree_node *, int));
extern void rest_of_compilation PROTO ((union tree_node *));
-extern void pedwarn_with_decl PVPROTO ((union tree_node *, char *, ...));
-extern void warning_with_decl PVPROTO ((union tree_node *, char *, ...));
-extern void error_with_decl PVPROTO ((union tree_node *, char *, ...));
+
+/* The *_with_decl functions aren't suitable for ATTRIBUTE_PRINTF. */
+extern void pedwarn_with_decl PVPROTO ((union tree_node *,
+ const char *, ...));
+extern void warning_with_decl PVPROTO ((union tree_node *,
+ const char *, ...));
+extern void error_with_decl PVPROTO ((union tree_node *,
+ const char *, ...));
+
extern void announce_function PROTO ((union tree_node *));
-extern void error_for_asm PVPROTO((struct rtx_def *, char *, ...))
- ATTRIBUTE_PRINTF_2;
-extern void warning_for_asm PVPROTO((struct rtx_def *, char *, ...))
- ATTRIBUTE_PRINTF_2;
+extern void error_for_asm PVPROTO((struct rtx_def *,
+ const char *, ...))
+ ATTRIBUTE_PRINTF_2;
+extern void warning_for_asm PVPROTO((struct rtx_def *,
+ const char *, ...))
+ ATTRIBUTE_PRINTF_2;
#if defined (_JBLEN) || defined (setjmp)
extern void set_float_handler PROTO((jmp_buf));
extern int push_float_handler PROTO((jmp_buf, jmp_buf));
#endif
#ifdef BUFSIZ
-extern void output_quoted_string PROTO ((FILE *, char *));
-extern void output_file_directive PROTO ((FILE *, char *));
+extern void output_quoted_string PROTO ((FILE *, const char *));
+extern void output_file_directive PROTO ((FILE *, const char *));
#endif
extern void fancy_abort PROTO ((void)) ATTRIBUTE_NORETURN;
extern void do_abort PROTO ((void)) ATTRIBUTE_NORETURN;
-extern void botch PROTO ((char *)) ATTRIBUTE_NORETURN;
+extern void botch PROTO ((const char *))
+ ATTRIBUTE_NORETURN;
#endif /* __GCC_TOPLEV_H */