+Sat Mar 6 07:49:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-aux-info.c (data_type, affix_data_type, gen_decl,
+ gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type):
+ Qualify a char* with the `const' keyword.
+
+ * c-common.c (declare_hidden_char_array, add_attribute, if_elt,
+ declare_function_name, decl_attributes, format_char_info,
+ check_format_info, binary_op_error): Likewise.
+
+ * cexp.y (yyerror, error, pedwarn, warning, token): Likewise.
+
+ * gcse.c (dump_hash_table): Likewise.
+
+ * integrate.c (function_cannot_inline_p): Likewise
+
+ * optabs.c: Include insn-config.h earlier.
+ (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs):
+ Qualify a char* with the `const' keyword.
+
+ * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe,
+ asctoeg, mtherr, ereal_atof): Likewise.
+
+ * real.h (ereal_atof): Likewise.
+
+ * sbitmap.c (dump_sbitmap_vector): Likewise.
+
+ * sbitmap.h (dump_sbitmap_vector): Likewise.
+
+ * stmt.c (nesting, n_occurrences, expand_start_case): Likewise.
+
+ * toplev.c (rest_of_compilation): Likewise.
+
+ * tree.h (function_cannot_inline_p, expand_start_case): Likewise.
+
Fri Mar 5 23:16:42 1999 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
/* Generate information regarding function declarations and definitions based
on information stored in GCC's tree structure. This code implements the
-aux-info option.
- Copyright (C) 1989, 91, 94, 95, 97, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1989, 91, 94, 95, 97-98, 1999 Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@segfault.us.com).
This file is part of GNU CC.
typedef enum formals_style_enum formals_style;
-static char *data_type;
+static const char *data_type;
-static char *affix_data_type PROTO((char *));
-static char *gen_formal_list_for_type PROTO((tree, formals_style));
+static char *affix_data_type PROTO((const char *));
+static const char *gen_formal_list_for_type PROTO((tree, formals_style));
static int deserves_ellipsis PROTO((tree));
-static char *gen_formal_list_for_func_def PROTO((tree, formals_style));
-static char *gen_type PROTO((char *, tree, formals_style));
-static char *gen_decl PROTO((tree, int, formals_style));
+static const char *gen_formal_list_for_func_def PROTO((tree, formals_style));
+static const char *gen_type PROTO((const char *, tree, formals_style));
+static const char *gen_decl PROTO((tree, int, formals_style));
\f
/* Concatenate a sequence of strings, returning the result.
that look as expected. */
static char *
-affix_data_type (type_or_decl)
- char *type_or_decl;
+affix_data_type (param)
+ const char *param;
{
+ char *type_or_decl = (char *) alloca (strlen (param) + 1);
char *p = type_or_decl;
char *qualifiers_then_data_type;
char saved;
+ strcpy (type_or_decl, param);
+
/* Skip as many leading const's or volatile's as there are. */
for (;;)
we are currently aiming for is non-ansi, then we just return a pair
of empty parens here. */
-static char *
+static const char *
gen_formal_list_for_type (fntype, style)
tree fntype;
formals_style style;
{
- char *formal_list = "";
+ const char *formal_list = "";
tree formal_type;
if (style != ansi)
formal_type = TYPE_ARG_TYPES (fntype);
while (formal_type && TREE_VALUE (formal_type) != void_type_node)
{
- char *this_type;
+ const char *this_type;
if (*formal_list)
formal_list = concat (formal_list, ", ", NULL_PTR);
This routine returns a string which is the source form for the entire
function formal parameter list. */
-static char *
+static const char *
gen_formal_list_for_func_def (fndecl, style)
tree fndecl;
formals_style style;
{
- char *formal_list = "";
+ const char *formal_list = "";
tree formal_decl;
formal_decl = DECL_ARGUMENTS (fndecl);
while (formal_decl)
{
- char *this_formal;
+ const char *this_formal;
if (*formal_list && ((style == ansi) || (style == k_and_r_names)))
formal_list = concat (formal_list, ", ", NULL_PTR);
to do at this point is for the initial caller to prepend the "data_type"
string onto the returned "seed". */
-static char *
+static const char *
gen_type (ret_val, t, style)
- char *ret_val;
+ const char *ret_val;
tree t;
formals_style style;
{
associated with a function definition. In this case, we can assume that
an attached list of DECL nodes for function formal arguments is present. */
-static char *
+static const char *
gen_decl (decl, is_func_definition, style)
tree decl;
int is_func_definition;
formals_style style;
{
- char *ret_val;
+ const char *ret_val;
if (DECL_NAME (decl))
ret_val = IDENTIFIER_POINTER (DECL_NAME (decl));
enum format_type { printf_format_type, scanf_format_type,
strftime_format_type };
-static void declare_hidden_char_array PROTO((char *, char *));
-static void add_attribute PROTO((enum attrs, char *,
+static void declare_hidden_char_array PROTO((const char *, const char *));
+static void add_attribute PROTO((enum attrs, const char *,
int, int, int));
static void init_attributes PROTO((void));
static void record_function_format PROTO((tree, tree, enum format_type,
{
int compstmt_count;
int line;
- char *file;
+ const char *file;
int needs_warning;
} if_elt;
static void tfaff PROTO((void));
void
declare_function_name ()
{
- char *name, *printable_name;
+ const char *name, *printable_name;
if (current_function_decl == NULL)
{
static void
declare_hidden_char_array (name, value)
- char *name, *value;
+ const char *name, *value;
{
tree decl, type, init;
int vlen;
static void
add_attribute (id, string, min_len, max_len, decl_req)
enum attrs id;
- char *string;
+ const char *string;
int min_len, max_len;
int decl_req;
{
else
{
int j;
- char *p = IDENTIFIER_POINTER (TREE_VALUE (args));
+ const char *p = IDENTIFIER_POINTER (TREE_VALUE (args));
int len = strlen (p);
enum machine_mode mode = VOIDmode;
tree typefm;
}
else
{
- char *p = IDENTIFIER_POINTER (format_type_id);
+ const char *p = IDENTIFIER_POINTER (format_type_id);
if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
format_type = printf_format_type;
#define T_ST &sizetype
typedef struct {
- char *format_chars;
+ const char *format_chars;
int pointer_count;
/* Type of argument if no length modifier is used. */
tree *nolen;
If NULL, then this modifier is not allowed. */
tree *zlen;
/* List of other modifier characters allowed with these options. */
- char *flag_chars;
+ const char *flag_chars;
} format_char_info;
static format_char_info print_char_table[] = {
tree cur_type;
tree wanted_type;
tree first_fillin_param;
- char *format_chars;
+ const char *format_chars;
format_char_info *fci = NULL;
char flag_chars[8];
int has_operand_number = 0;
it is an operand number, so set PARAMS to that operand. */
if (*format_chars >= '0' && *format_chars <= '9')
{
- char *p = format_chars;
+ const char *p = format_chars;
while (*p >= '0' && *p++ <= '9')
;
&& (TYPE_MAIN_VARIANT (cur_type) == signed_char_type_node
|| TYPE_MAIN_VARIANT (cur_type) == unsigned_char_type_node)))
{
- register char *this;
- register char *that;
+ register const char *this;
+ register const char *that;
this = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (wanted_type)));
that = 0;
binary_op_error (code)
enum tree_code code;
{
- register char *opname;
+ register const char *opname;
switch (code)
{
HOST_WIDEST_INT parse_c_expression PROTO((char *, int));
static int yylex PROTO((void));
-static void yyerror PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
+static void yyerror PVPROTO((const char *, ...))
+ ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
static HOST_WIDEST_INT expression_value;
#ifdef TEST_EXP_READER
static int expression_signedp;
HOST_WIDEST_INT parse_escape PROTO((char **, HOST_WIDEST_INT));
int check_assertion PROTO((U_CHAR *, int, int, struct arglist *));
struct hashnode *lookup PROTO((U_CHAR *, int, int));
-void error PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
-void pedwarn PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
-void warning PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
+void error PVPROTO((const char *, ...)) ATTRIBUTE_PRINTF_1;
+void pedwarn PVPROTO((const char *, ...)) ATTRIBUTE_PRINTF_1;
+void warning PVPROTO((const char *, ...)) ATTRIBUTE_PRINTF_1;
static int parse_number PROTO((int));
static HOST_WIDEST_INT left_shift PROTO((struct constant *, unsigned HOST_WIDEST_INT));
#define SIGNED (~0)
#define UNSIGNED 0
-#line 152 "cexp.y"
+#line 153 "cexp.y"
typedef union {
struct constant {HOST_WIDEST_INT value; int signedp;} integer;
struct name {U_CHAR *address; int length;} name;
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 182, 192, 193, 200, 205, 208, 210, 213, 217, 219,
- 224, 229, 242, 259, 272, 278, 284, 290, 296, 299,
- 302, 309, 316, 323, 330, 333, 336, 339, 342, 345,
- 348, 351, 353, 356, 359, 361, 363, 371, 373, 386
+ 183, 193, 194, 201, 206, 209, 211, 214, 218, 220,
+ 225, 230, 243, 260, 273, 279, 285, 291, 297, 300,
+ 303, 310, 317, 324, 331, 334, 337, 340, 343, 346,
+ 349, 352, 354, 357, 360, 362, 364, 372, 374, 387
};
#endif
switch (yyn) {
case 1:
-#line 183 "cexp.y"
+#line 184 "cexp.y"
{
expression_value = yyvsp[0].integer.value;
#ifdef TEST_EXP_READER
;
break;}
case 3:
-#line 194 "cexp.y"
+#line 195 "cexp.y"
{ if (pedantic)
pedwarn ("comma operator in operand of `#if'");
yyval.integer = yyvsp[0].integer; ;
break;}
case 4:
-#line 201 "cexp.y"
+#line 202 "cexp.y"
{ yyval.integer.value = - yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[0].integer.signedp;
if ((yyval.integer.value & yyvsp[0].integer.value & yyval.integer.signedp) < 0)
integer_overflow (); ;
break;}
case 5:
-#line 206 "cexp.y"
+#line 207 "cexp.y"
{ yyval.integer.value = ! yyvsp[0].integer.value;
yyval.integer.signedp = SIGNED; ;
break;}
case 6:
-#line 209 "cexp.y"
+#line 210 "cexp.y"
{ yyval.integer = yyvsp[0].integer; ;
break;}
case 7:
-#line 211 "cexp.y"
+#line 212 "cexp.y"
{ yyval.integer.value = ~ yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[0].integer.signedp; ;
break;}
case 8:
-#line 214 "cexp.y"
+#line 215 "cexp.y"
{ yyval.integer.value = check_assertion (yyvsp[0].name.address, yyvsp[0].name.length,
0, NULL_PTR);
yyval.integer.signedp = SIGNED; ;
break;}
case 9:
-#line 218 "cexp.y"
+#line 219 "cexp.y"
{ keyword_parsing = 1; ;
break;}
case 10:
-#line 220 "cexp.y"
+#line 221 "cexp.y"
{ yyval.integer.value = check_assertion (yyvsp[-4].name.address, yyvsp[-4].name.length,
1, yyvsp[-1].keywords);
keyword_parsing = 0;
yyval.integer.signedp = SIGNED; ;
break;}
case 11:
-#line 225 "cexp.y"
+#line 226 "cexp.y"
{ yyval.integer = yyvsp[-1].integer; ;
break;}
case 12:
-#line 230 "cexp.y"
+#line 231 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (yyval.integer.signedp)
{
* yyvsp[0].integer.value); ;
break;}
case 13:
-#line 243 "cexp.y"
+#line 244 "cexp.y"
{ if (yyvsp[0].integer.value == 0)
{
if (!skip_evaluation)
/ yyvsp[0].integer.value); ;
break;}
case 14:
-#line 260 "cexp.y"
+#line 261 "cexp.y"
{ if (yyvsp[0].integer.value == 0)
{
if (!skip_evaluation)
% yyvsp[0].integer.value); ;
break;}
case 15:
-#line 273 "cexp.y"
+#line 274 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value + yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (overflow_sum_sign (yyvsp[-2].integer.value, yyvsp[0].integer.value,
integer_overflow (); ;
break;}
case 16:
-#line 279 "cexp.y"
+#line 280 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value - yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (overflow_sum_sign (yyval.integer.value, yyvsp[0].integer.value,
integer_overflow (); ;
break;}
case 17:
-#line 285 "cexp.y"
+#line 286 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
yyval.integer.value = right_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
yyval.integer.value = left_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
break;}
case 18:
-#line 291 "cexp.y"
+#line 292 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
yyval.integer.value = left_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
yyval.integer.value = right_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
break;}
case 19:
-#line 297 "cexp.y"
+#line 298 "cexp.y"
{ yyval.integer.value = (yyvsp[-2].integer.value == yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 20:
-#line 300 "cexp.y"
+#line 301 "cexp.y"
{ yyval.integer.value = (yyvsp[-2].integer.value != yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 21:
-#line 303 "cexp.y"
+#line 304 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value <= yyvsp[0].integer.value;
<= yyvsp[0].integer.value); ;
break;}
case 22:
-#line 310 "cexp.y"
+#line 311 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value >= yyvsp[0].integer.value;
>= yyvsp[0].integer.value); ;
break;}
case 23:
-#line 317 "cexp.y"
+#line 318 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value < yyvsp[0].integer.value;
< yyvsp[0].integer.value); ;
break;}
case 24:
-#line 324 "cexp.y"
+#line 325 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value > yyvsp[0].integer.value;
> yyvsp[0].integer.value); ;
break;}
case 25:
-#line 331 "cexp.y"
+#line 332 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value & yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 26:
-#line 334 "cexp.y"
+#line 335 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value ^ yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 27:
-#line 337 "cexp.y"
+#line 338 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value | yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 28:
-#line 340 "cexp.y"
+#line 341 "cexp.y"
{ skip_evaluation += !yyvsp[-1].integer.value; ;
break;}
case 29:
-#line 342 "cexp.y"
+#line 343 "cexp.y"
{ skip_evaluation -= !yyvsp[-3].integer.value;
yyval.integer.value = (yyvsp[-3].integer.value && yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 30:
-#line 346 "cexp.y"
+#line 347 "cexp.y"
{ skip_evaluation += !!yyvsp[-1].integer.value; ;
break;}
case 31:
-#line 348 "cexp.y"
+#line 349 "cexp.y"
{ skip_evaluation -= !!yyvsp[-3].integer.value;
yyval.integer.value = (yyvsp[-3].integer.value || yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 32:
-#line 352 "cexp.y"
+#line 353 "cexp.y"
{ skip_evaluation += !yyvsp[-1].integer.value; ;
break;}
case 33:
-#line 354 "cexp.y"
+#line 355 "cexp.y"
{ skip_evaluation += !!yyvsp[-4].integer.value - !yyvsp[-4].integer.value; ;
break;}
case 34:
-#line 356 "cexp.y"
+#line 357 "cexp.y"
{ skip_evaluation -= !!yyvsp[-6].integer.value;
yyval.integer.value = yyvsp[-6].integer.value ? yyvsp[-3].integer.value : yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-3].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 35:
-#line 360 "cexp.y"
+#line 361 "cexp.y"
{ yyval.integer = yylval.integer; ;
break;}
case 36:
-#line 362 "cexp.y"
+#line 363 "cexp.y"
{ yyval.integer = yylval.integer; ;
break;}
case 37:
-#line 364 "cexp.y"
+#line 365 "cexp.y"
{ if (warn_undef && !skip_evaluation)
warning ("`%.*s' is not defined",
yyvsp[0].name.length, yyvsp[0].name.address);
yyval.integer.signedp = SIGNED; ;
break;}
case 38:
-#line 372 "cexp.y"
+#line 373 "cexp.y"
{ yyval.keywords = 0; ;
break;}
case 39:
-#line 374 "cexp.y"
+#line 375 "cexp.y"
{ struct arglist *temp;
yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
yyval.keywords->next = yyvsp[-2].keywords;
temp->next->length = 1; ;
break;}
case 40:
-#line 387 "cexp.y"
+#line 388 "cexp.y"
{ yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
yyval.keywords->name = yyvsp[-1].name.address;
yyval.keywords->length = yyvsp[-1].name.length;
yystate = yyn;
goto yynewstate;
}
-#line 392 "cexp.y"
+#line 393 "cexp.y"
\f
/* During parsing of a C expression, the pointer to the next character
}
struct token {
- char *operator;
+ const char *operator;
int token;
};
}
static void
-yyerror VPROTO ((char * msgid, ...))
+yyerror VPROTO ((const char * msgid, ...))
{
#ifndef ANSI_PROTOTYPES
- char * msgid;
+ const char * msgid;
#endif
va_list args;
VA_START (args, msgid);
#ifndef ANSI_PROTOTYPES
- msgid = va_arg (args, char *);
+ msgid = va_arg (args, const char *);
#endif
fprintf (stderr, "error: ");
/* Parse C expressions for CCCP.
- Copyright (C) 1987, 92, 94, 95, 96, 97, 1998 Free Software Foundation.
+ Copyright (C) 1987, 92, 94-98, 1999 Free Software Foundation.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
HOST_WIDEST_INT parse_c_expression PROTO((char *, int));
static int yylex PROTO((void));
-static void yyerror PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
+static void yyerror PVPROTO((const char *, ...))
+ ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
static HOST_WIDEST_INT expression_value;
#ifdef TEST_EXP_READER
static int expression_signedp;
HOST_WIDEST_INT parse_escape PROTO((char **, HOST_WIDEST_INT));
int check_assertion PROTO((U_CHAR *, int, int, struct arglist *));
struct hashnode *lookup PROTO((U_CHAR *, int, int));
-void error PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
-void pedwarn PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
-void warning PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
+void error PVPROTO((const char *, ...)) ATTRIBUTE_PRINTF_1;
+void pedwarn PVPROTO((const char *, ...)) ATTRIBUTE_PRINTF_1;
+void warning PVPROTO((const char *, ...)) ATTRIBUTE_PRINTF_1;
static int parse_number PROTO((int));
static HOST_WIDEST_INT left_shift PROTO((struct constant *, unsigned HOST_WIDEST_INT));
}
struct token {
- char *operator;
+ const char *operator;
int token;
};
}
static void
-yyerror VPROTO ((char * msgid, ...))
+yyerror VPROTO ((const char * msgid, ...))
{
#ifndef ANSI_PROTOTYPES
- char * msgid;
+ const char * msgid;
#endif
va_list args;
VA_START (args, msgid);
#ifndef ANSI_PROTOTYPES
- msgid = va_arg (args, char *);
+ msgid = va_arg (args, const char *);
#endif
fprintf (stderr, "error: ");
static void alloc_expr_hash_table PROTO ((int));
static void free_expr_hash_table PROTO ((void));
static void compute_expr_hash_table PROTO ((rtx));
-static void dump_hash_table PROTO ((FILE *, char *, struct expr **, int, int));
+static void dump_hash_table PROTO ((FILE *, const char *, struct expr **, int, int));
static struct expr *lookup_expr PROTO ((rtx));
static struct expr *lookup_set PROTO ((int, rtx));
static struct expr *next_set PROTO ((int, struct expr *));
static void
dump_hash_table (file, name, table, table_size, total_size)
FILE *file;
- char *name;
+ const char *name;
struct expr **table;
int table_size, total_size;
{
Nonzero means value is a warning msgid with a single %s
for the function's name. */
-char *
+const char *
function_cannot_inline_p (fndecl)
register tree fndecl;
{
#include "config.h"
#include "system.h"
+
+/* Include insn-config.h before expr.h so that HAVE_conditional_move
+ is properly defined. */
+#include "insn-config.h"
#include "rtl.h"
#include "tree.h"
#include "flags.h"
#include "insn-flags.h"
#include "insn-codes.h"
#include "expr.h"
-#include "insn-config.h"
#include "recog.h"
#include "reload.h"
int));
static rtx ftruncify PROTO((rtx));
static optab init_optab PROTO((enum rtx_code));
-static void init_libfuncs PROTO((optab, int, int, char *, int));
-static void init_integral_libfuncs PROTO((optab, char *, int));
-static void init_floating_libfuncs PROTO((optab, char *, int));
+static void init_libfuncs PROTO((optab, int, int, const char *, int));
+static void init_integral_libfuncs PROTO((optab, const char *, int));
+static void init_floating_libfuncs PROTO((optab, const char *, int));
#ifdef HAVE_conditional_trap
static void init_traps PROTO((void));
#endif
register optab optable;
register int first_mode;
register int last_mode;
- register char *opname;
+ register const char *opname;
register int suffix;
{
register int mode;
register char *libfunc_name
= (char *) xmalloc (2 + opname_len + mname_len + 1 + 1);
register char *p;
- register char *q;
+ register const char *q;
p = libfunc_name;
*p++ = '_';
static void
init_integral_libfuncs (optable, opname, suffix)
register optab optable;
- register char *opname;
+ register const char *opname;
register int suffix;
{
init_libfuncs (optable, SImode, TImode, opname, suffix);
static void
init_floating_libfuncs (optable, opname, suffix)
register optab optable;
- register char *opname;
+ register const char *opname;
register int suffix;
{
init_libfuncs (optable, SFmode, TFmode, opname, suffix);
static void e113toasc PROTO((unsigned EMUSHORT *, char *, int));
#endif /* 0 */
static void etoasc PROTO((unsigned EMUSHORT *, char *, int));
-static void asctoe24 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe53 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe64 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe113 PROTO((char *, unsigned EMUSHORT *));
-static void asctoe PROTO((char *, unsigned EMUSHORT *));
-static void asctoeg PROTO((char *, unsigned EMUSHORT *, int));
+static void asctoe24 PROTO((const char *, unsigned EMUSHORT *));
+static void asctoe53 PROTO((const char *, unsigned EMUSHORT *));
+static void asctoe64 PROTO((const char *, unsigned EMUSHORT *));
+static void asctoe113 PROTO((const char *, unsigned EMUSHORT *));
+static void asctoe PROTO((const char *, unsigned EMUSHORT *));
+static void asctoeg PROTO((const char *, unsigned EMUSHORT *, int));
static void efloor PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
#if 0
static void efrexp PROTO((unsigned EMUSHORT *, int *,
unsigned EMUSHORT *));
#endif
static void eiremain PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void mtherr PROTO((char *, int));
+static void mtherr PROTO((const char *, int));
#ifdef DEC
static void dectoe PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void etodec PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
REAL_VALUE_TYPE
ereal_atof (s, t)
- char *s;
+ const char *s;
enum machine_mode t;
{
unsigned EMUSHORT tem[NE], e[NE];
static void
asctoe24 (s, y)
- char *s;
+ const char *s;
unsigned EMUSHORT *y;
{
asctoeg (s, y, 24);
static void
asctoe53 (s, y)
- char *s;
+ const char *s;
unsigned EMUSHORT *y;
{
#if defined(DEC) || defined(IBM)
static void
asctoe64 (s, y)
- char *s;
+ const char *s;
unsigned EMUSHORT *y;
{
asctoeg (s, y, 64);
static void
asctoe113 (s, y)
- char *s;
+ const char *s;
unsigned EMUSHORT *y;
{
asctoeg (s, y, 113);
static void
asctoe (s, y)
- char *s;
+ const char *s;
unsigned EMUSHORT *y;
{
asctoeg (s, y, NBITS);
static void
asctoeg (ss, y, oprec)
- char *ss;
+ const char *ss;
unsigned EMUSHORT *y;
int oprec;
{
/* Copy the input string. */
lstr = (char *) alloca (strlen (ss) + 1);
- s = ss;
- while (*s == ' ') /* skip leading spaces */
- ++s;
+ while (*ss == ' ') /* skip leading spaces */
+ ++ss;
sp = lstr;
- while ((*sp++ = *s++) != '\0')
+ while ((*sp++ = *ss++) != '\0')
;
s = lstr;
static void
mtherr (name, code)
- char *name;
+ const char *name;
int code;
{
/* The string passed by the calling program is supposed to be the
/* Definitions of floating-point access for GNU compiler.
- Copyright (C) 1989, 91, 94, 96, 97, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1989, 91, 94, 96-98, 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
REAL_VALUE_TYPE *, REAL_VALUE_TYPE *));
extern REAL_VALUE_TYPE etrunci PROTO((REAL_VALUE_TYPE));
extern REAL_VALUE_TYPE etruncui PROTO((REAL_VALUE_TYPE));
-extern REAL_VALUE_TYPE ereal_atof PROTO((char *, enum machine_mode));
+extern REAL_VALUE_TYPE ereal_atof PROTO((const char *, enum machine_mode));
extern REAL_VALUE_TYPE ereal_negate PROTO((REAL_VALUE_TYPE));
extern HOST_WIDE_INT efixi PROTO((REAL_VALUE_TYPE));
extern unsigned HOST_WIDE_INT efixui PROTO((REAL_VALUE_TYPE));
void
dump_sbitmap_vector (file, title, subtitle, bmaps, n_maps)
FILE *file;
- char *title, *subtitle;
+ const char *title, *subtitle;
sbitmap *bmaps;
int n_maps;
{
#define sbitmap_vector_free(vec) free(vec)
extern void dump_sbitmap PROTO ((FILE *, sbitmap));
-extern void dump_sbitmap_vector PROTO ((FILE *, char *, char *,
+extern void dump_sbitmap_vector PROTO ((FILE *, const char *, const char *,
sbitmap *, int));
extern sbitmap sbitmap_alloc PROTO ((int));
/* Number of range exprs in case statement. */
int num_ranges;
/* Name of this kind of statement, for warnings. */
- char *printname;
+ const char *printname;
/* Used to save no_line_numbers till we see the first case label.
We set this to -1 when we see the first case label in this
case statement. */
static int using_eh_for_cleanups_p = 0;
-static int n_occurrences PROTO((int, char *));
+static int n_occurrences PROTO((int, const char *));
static void expand_goto_internal PROTO((tree, rtx, rtx));
static int expand_fixup PROTO((tree, rtx, rtx));
static rtx expand_nl_handler_label PROTO((rtx, rtx));
static int
n_occurrences (c, s)
int c;
- char *s;
+ const char *s;
{
int n = 0;
while (*s)
int exit_flag;
tree expr;
tree type;
- char *printname;
+ const char *printname;
{
register struct nesting *thiscase = ALLOC_NESTING ();
if (DECL_SAVED_INSNS (decl) == 0)
{
int inlinable = 0;
- char *lose;
+ const char *lose;
/* If requested, consider whether to make this function inline. */
if (DECL_INLINE (decl) || flag_inline_functions)
Otherwise return a warning message with a single %s
for the function's name. */
-extern char *function_cannot_inline_p PROTO((tree));
+extern const char *function_cannot_inline_p PROTO((tree));
/* Return 1 if EXPR is the real constant zero. */
extern int real_zerop PROTO((tree));
extern int expand_dhc_cleanup PROTO((tree));
extern int expand_dcc_cleanup PROTO((tree));
extern void expand_start_case PROTO((int, tree, tree,
- char *));
+ const char *));
extern void expand_end_case PROTO((tree));
extern int pushcase PROTO((tree,
tree (*) (tree, tree),