This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Patch to constify mode_name
- To: egcs-patches at egcs dot cygnus dot com
- Subject: Patch to constify mode_name
- From: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Date: Thu, 12 Aug 1999 10:28:08 -0400 (EDT)
This patch constifies mode_name from modename.h/rtl.c.
Tested on Irix6. Okay to install?
--Kaveh
1999-08-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* machmode.h (mode_name): Constify a char*.
* rtl.c (mode_name): Likewise.
* genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
* optabs.c (init_libfuncs): Constify a char*.
* print-tree.c (mode_name): Remove redundant declaration.
(print_node): Use accessor macro, not `mode_name'.
* reload1.c (dump_needs): Constify a char*. Use accessor macro,
not `mode_name'.
(new_spill_reg): Constify a char*.
* tree.c (mode_name): Remove redundant declaration.
diff -rup orig/egcs-CVS19990810/gcc/machmode.h egcs-CVS19990810/gcc/machmode.h
--- orig/egcs-CVS19990810/gcc/machmode.h Thu Apr 8 10:21:35 1999
+++ egcs-CVS19990810/gcc/machmode.h Wed Aug 11 13:51:54 1999
@@ -56,7 +56,7 @@ MAX_MACHINE_MODE };
/* Get the name of mode MODE as a string. */
-extern char *mode_name[];
+extern const char *mode_name[];
#define GET_MODE_NAME(MODE) (mode_name[(int) (MODE)])
enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
diff -rup orig/egcs-CVS19990810/gcc/rtl.c egcs-CVS19990810/gcc/rtl.c
--- orig/egcs-CVS19990810/gcc/rtl.c Wed Aug 11 13:51:08 1999
+++ egcs-CVS19990810/gcc/rtl.c Wed Aug 11 13:51:38 1999
@@ -58,7 +58,7 @@ const char *rtx_name[] = {
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) NAME,
-char *mode_name[(int) MAX_MACHINE_MODE + 1] = {
+const char *mode_name[(int) MAX_MACHINE_MODE + 1] = {
#include "machmode.def"
#ifdef EXTRA_CC_MODES
diff -rup orig/egcs-CVS19990810/gcc/genopinit.c egcs-CVS19990810/gcc/genopinit.c
--- orig/egcs-CVS19990810/gcc/genopinit.c Wed Aug 11 13:51:07 1999
+++ egcs-CVS19990810/gcc/genopinit.c Wed Aug 11 13:53:37 1999
@@ -200,7 +200,7 @@ gen_insn (insn)
CC modes (as it should be). */
for (i = ((int) MAX_MACHINE_MODE) - 1; i >= 0; i--)
{
- for (p = mode_name[i], q = np; *p; p++, q++)
+ for (p = GET_MODE_NAME(i), q = np; *p; p++, q++)
if (tolower ((unsigned char)*p) != *q)
break;
@@ -213,9 +213,9 @@ gen_insn (insn)
if (i < 0)
matches = 0;
else if (*pp == 'a')
- m1 = i, np += strlen (mode_name[i]);
+ m1 = i, np += strlen (GET_MODE_NAME(i));
else
- m2 = i, np += strlen (mode_name[i]);
+ m2 = i, np += strlen (GET_MODE_NAME(i));
force_int = force_float = 0;
break;
@@ -254,18 +254,18 @@ gen_insn (insn)
case 'I': case 'F': case 'N':
break;
case 'a':
- for (np = mode_name[m1]; *np; np++)
+ for (np = GET_MODE_NAME(m1); *np; np++)
printf ("%c", tolower ((unsigned char)*np));
break;
case 'b':
- for (np = mode_name[m2]; *np; np++)
+ for (np = GET_MODE_NAME(m2); *np; np++)
printf ("%c", tolower ((unsigned char)*np));
break;
case 'A':
- printf ("%smode", mode_name[m1]);
+ printf ("%smode", GET_MODE_NAME(m1));
break;
case 'B':
- printf ("%smode", mode_name[m2]);
+ printf ("%smode", GET_MODE_NAME(m2));
break;
case 'c':
printf ("%s", GET_RTX_NAME(op));
diff -rup orig/egcs-CVS19990810/gcc/optabs.c egcs-CVS19990810/gcc/optabs.c
--- orig/egcs-CVS19990810/gcc/optabs.c Mon Aug 9 15:42:07 1999
+++ egcs-CVS19990810/gcc/optabs.c Wed Aug 11 13:55:28 1999
@@ -4395,7 +4395,7 @@ init_libfuncs (optable, first_mode, last
for (mode = first_mode; (int) mode <= (int) last_mode;
mode = (enum machine_mode) ((int) mode + 1))
{
- register char *mname = mode_name[(int) mode];
+ register const char *mname = GET_MODE_NAME(mode);
register unsigned mname_len = strlen (mname);
register char *libfunc_name
= (char *) xmalloc (2 + opname_len + mname_len + 1 + 1);
diff -rup orig/egcs-CVS19990810/gcc/print-tree.c egcs-CVS19990810/gcc/print-tree.c
--- orig/egcs-CVS19990810/gcc/print-tree.c Mon Aug 9 07:42:24 1999
+++ egcs-CVS19990810/gcc/print-tree.c Wed Aug 11 13:58:05 1999
@@ -23,8 +23,6 @@ Boston, MA 02111-1307, USA. */
#include "system.h"
#include "tree.h"
-extern char *mode_name[];
-
void print_node ();
void indent_to ();
@@ -389,7 +387,7 @@ print_node (file, prefix, node, indent)
if (DECL_LANG_FLAG_7 (node))
fputs (" decl_7", file);
- fprintf (file, " %s", mode_name[(int) mode]);
+ fprintf (file, " %s", GET_MODE_NAME(mode));
fprintf (file, " file %s line %d",
DECL_SOURCE_FILE (node), DECL_SOURCE_LINE (node));
@@ -474,7 +472,7 @@ print_node (file, prefix, node, indent)
fputs (" type_6", file);
mode = TYPE_MODE (node);
- fprintf (file, " %s", mode_name[(int) mode]);
+ fprintf (file, " %s", GET_MODE_NAME(mode));
print_node (file, "size", TYPE_SIZE (node), indent + 4);
indent_to (file, indent + 3);
diff -rup orig/egcs-CVS19990810/gcc/reload1.c egcs-CVS19990810/gcc/reload1.c
--- orig/egcs-CVS19990810/gcc/reload1.c Wed Aug 11 13:42:35 1999
+++ egcs-CVS19990810/gcc/reload1.c Wed Aug 11 14:03:01 1999
@@ -2031,7 +2031,7 @@ dump_needs (chain, dumpfile)
struct insn_chain *chain;
FILE *dumpfile;
{
- static char *reg_class_names[] = REG_CLASS_NAMES;
+ static const char *reg_class_names[] = REG_CLASS_NAMES;
int i;
struct needs *n = &chain->need;
@@ -2051,7 +2051,7 @@ dump_needs (chain, dumpfile)
fprintf (dumpfile,
";; Need %d group%s (%smode) of class %s.\n",
n->groups[i], n->groups[i] == 1 ? "" : "s",
- mode_name[(int) chain->group_mode[i]],
+ GET_MODE_NAME(chain->group_mode[i]),
reg_class_names[i]);
}
}
@@ -2292,7 +2292,7 @@ new_spill_reg (chain, i, class, nongroup
if (TEST_HARD_REG_BIT (bad_spill_regs, regno))
{
- static char *reg_class_names[] = REG_CLASS_NAMES;
+ static const char *reg_class_names[] = REG_CLASS_NAMES;
if (asm_noperands (PATTERN (chain->insn)) < 0)
{
diff -rup orig/egcs-CVS19990810/gcc/tree.c egcs-CVS19990810/gcc/tree.c
--- orig/egcs-CVS19990810/gcc/tree.c Wed Aug 4 16:34:35 1999
+++ egcs-CVS19990810/gcc/tree.c Wed Aug 11 14:00:52 1999
@@ -266,8 +266,6 @@ static void set_type_quals PROTO((tree,
static void append_random_chars PROTO((char *));
static void build_real_from_int_cst_1 PROTO((PTR));
-extern char *mode_name[];
-
void gcc_obstack_init ();
/* Init the principal obstacks. */