This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch: const-ification grab-bag


This is another const-ification grab-bag.  I suspect it'll be the last
const patch I'll submit for a bit since I've tackled all of the low
hanging fruit I could find.

One note, in a couple of cases we were zero initializing the first
element of an array.  This caused the remaining elements to be zero
filled too but gcc put the entire thing in .data instead of .bss.  I
manually fixed this, but it seems to me that this could/should be
done automatically.  Perhaps something to do later.

Tested via bootstrap and testsuite run on sparc-sun-solaris2.7.  I
also tested the mips-t*.c stuff by compiling it on mips-sgi-irix6.2.

Ok to install?

		Thanks,
		--Kaveh


2002-01-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gcc.c (default_compilers): Const-ify.
	* mips-tdump.c (stab_names): Likewise.
	* mips-tfile.c (map_coff_types, map_coff_storage,
	map_coff_sym_type, map_coff_derived_type, stabs_symbol,
	pseudo_ops_t, pseudo_ops): Likewise.
	* protoize.c (default_include): Likewise
	
f:
	* com.c (clear_binding_level): Const-ify.
	(ffecom_arglist_expr_): Likewise.
	* info.c (ffeinfo_types_): Don't needlessly zero init.
	* lex.c (ffelex_hash_kludge): Const-ify.
	
java:
	* parse.y (src_parse_roots): Don't needlessly zero init.

libiberty:
	* cp-demangle.c (long_options): Const-ify.
	* cplus-dem.c (long_options): Likewise.

diff -rup orig/egcc-CVS20020101/gcc/f/com.c egcc-CVS20020101/gcc/f/com.c
--- orig/egcc-CVS20020101/gcc/f/com.c	Sun Dec 23 10:44:32 2001
+++ egcc-CVS20020101/gcc/f/com.c	Wed Jan  2 11:18:05 2002
@@ -563,7 +563,7 @@ static struct binding_level *global_bind
 
 /* Binding level structures are initialized by copying this one.  */
 
-static struct binding_level clear_binding_level
+static const struct binding_level clear_binding_level
 =
 {NULL, NULL, NULL, NULL_BINDING_LEVEL, 0};
 
@@ -1283,7 +1283,7 @@ ffecom_arglist_expr_ (const char *c, ffe
   tree item;
   bool ptr = FALSE;
   tree wanted = NULL_TREE;
-  static char zed[] = "0";
+  static const char zed[] = "0";
 
   if (c == NULL)
     c = &zed[0];
diff -rup orig/egcc-CVS20020101/gcc/f/info.c egcc-CVS20020101/gcc/f/info.c
--- orig/egcc-CVS20020101/gcc/f/info.c	Wed Sep 12 12:05:27 2001
+++ egcc-CVS20020101/gcc/f/info.c	Wed Jan  2 11:18:05 2002
@@ -98,8 +98,7 @@ static const char *const ffeinfo_where_s
 #include "info-w.def"
 #undef FFEINFO_WHERE
 };
-static ffetype ffeinfo_types_[FFEINFO_basictype][FFEINFO_kindtype]
-  = { { NULL } };
+static ffetype ffeinfo_types_[FFEINFO_basictype][FFEINFO_kindtype];
 
 /* Static functions (internal). */
 
diff -rup orig/egcc-CVS20020101/gcc/f/lex.c egcc-CVS20020101/gcc/f/lex.c
--- orig/egcc-CVS20020101/gcc/f/lex.c	Sun Dec 16 08:49:22 2001
+++ egcc-CVS20020101/gcc/f/lex.c	Wed Jan  2 11:18:06 2002
@@ -3898,10 +3898,10 @@ ffelex_hash_kludge (FILE *finput)
   /* If you change this constant string, you have to change whatever
      code might thus be affected by it in terms of having to use
      ffelex_getc_() instead of getc() in the lexers and _hash_.  */
-  static char match[] = "# 1 \"";
+  static const char match[] = "# 1 \"";
   static int kludge[ARRAY_SIZE (match) + 1];
   int c;
-  char *p;
+  const char *p;
   int *q;
 
   /* Read chars as long as they match the target string.
diff -rup orig/egcc-CVS20020101/gcc/gcc.c egcc-CVS20020101/gcc/gcc.c
--- orig/egcc-CVS20020101/gcc/gcc.c	Tue Jan  1 23:12:54 2002
+++ egcc-CVS20020101/gcc/gcc.c	Wed Jan  2 11:18:07 2002
@@ -807,7 +807,7 @@ static int n_compilers;
 
 /* The default list of file name suffixes and their compilation specs.  */
 
-static struct compiler default_compilers[] =
+static const struct compiler default_compilers[] =
 {
   /* Add lists of suffixes of known languages here.  If those languages
      were not present when we built the driver, we will hit these copies
diff -rup orig/egcc-CVS20020101/gcc/java/parse.y egcc-CVS20020101/gcc/java/parse.y
--- orig/egcc-CVS20020101/gcc/java/parse.y	Tue Jan  1 01:55:35 2002
+++ egcc-CVS20020101/gcc/java/parse.y	Wed Jan  2 11:18:09 2002
@@ -421,7 +421,7 @@ static tree currently_caught_type_list;
    `ctxp->current_loop'.  */
 static tree case_label_list; 
 
-static tree src_parse_roots[1] = { NULL_TREE };
+static tree src_parse_roots[1];
 
 /* All classes seen from source code */
 #define gclass_list src_parse_roots[0]
diff -rup orig/egcc-CVS20020101/gcc/mips-tdump.c egcc-CVS20020101/gcc/mips-tdump.c
--- orig/egcc-CVS20020101/gcc/mips-tdump.c	Thu Oct 11 07:30:37 2001
+++ egcc-CVS20020101/gcc/mips-tdump.c	Wed Jan  2 11:29:49 2002
@@ -247,7 +247,7 @@ extern int   opterr;
 /* Create a table of debugging stab-codes and corresponding names.  */
 
 #define __define_stab(NAME, CODE, STRING) {(int)CODE, STRING},
-struct {short code; char string[10];} stab_names[]  = {
+const struct {const short code; const char string[10];} stab_names[]  = {
 #include "stab.def"
 #undef __define_stab
 };
diff -rup orig/egcc-CVS20020101/gcc/mips-tfile.c egcc-CVS20020101/gcc/mips-tfile.c
--- orig/egcc-CVS20020101/gcc/mips-tfile.c	Sat Dec  1 20:50:08 2001
+++ egcc-CVS20020101/gcc/mips-tfile.c	Wed Jan  2 11:29:49 2002
@@ -1273,7 +1273,7 @@ static EXTR	  *last_func_eptr;
    Maybe this will be fixed in 2.10 or 2.20 of the MIPS compiler
    suite, but for now go with what works.  */
 
-static bt_t map_coff_types[ (int)T_MAX ] = {
+static const bt_t map_coff_types[ (int)T_MAX ] = {
   bt_Nil,			/* T_NULL */
   bt_Nil,			/* T_ARG */
   bt_Char,			/* T_CHAR */
@@ -1293,7 +1293,7 @@ static bt_t map_coff_types[ (int)T_MAX ]
 };
 
 /* Convert COFF storage class to ECOFF storage class.  */
-static sc_t map_coff_storage[ (int)C_MAX ] = {
+static const sc_t map_coff_storage[ (int)C_MAX ] = {
   sc_Nil,			/*   0: C_NULL */
   sc_Abs,			/*   1: C_AUTO	  auto var */
   sc_Undefined,			/*   2: C_EXT	  external */
@@ -1404,7 +1404,7 @@ static sc_t map_coff_storage[ (int)C_MAX
 };
 
 /* Convert COFF storage class to ECOFF symbol type.  */
-static st_t map_coff_sym_type[ (int)C_MAX ] = {
+static const st_t map_coff_sym_type[ (int)C_MAX ] = {
   st_Nil,			/*   0: C_NULL */
   st_Local,			/*   1: C_AUTO	  auto var */
   st_Global,			/*   2: C_EXT	  external */
@@ -1515,7 +1515,7 @@ static st_t map_coff_sym_type[ (int)C_MA
 };
 
 /* Map COFF derived types to ECOFF type qualifiers.  */
-static tq_t map_coff_derived_type[ (int)DT_MAX ] = {
+static const tq_t map_coff_derived_type[ (int)DT_MAX ] = {
   tq_Nil,			/* 0: DT_NON	no more qualifiers */
   tq_Ptr,			/* 1: DT_PTR	pointer */
   tq_Proc,			/* 2: DT_FCN	function */
@@ -1594,7 +1594,7 @@ static int	stabs_seen	= 0;		/* != 0 if s
 #define STABS_SYMBOL "@stabs"
 #endif
 
-static char stabs_symbol[] = STABS_SYMBOL;
+static const char stabs_symbol[] = STABS_SYMBOL;
 
 
 /* Forward reference for functions.  See the definition for more details.  */
@@ -1715,12 +1715,12 @@ extern int   opterr;
    do......  */
 
 typedef struct _pseudo_ops {
-  const char *name;			/* pseudo-op in ascii */
-  int len;				/* length of name to compare */
-  void (*func) PARAMS ((const char *));	/* function to handle line */
+  const char *const name;			/* pseudo-op in ascii */
+  const int len;				/* length of name to compare */
+  void (*const func) PARAMS ((const char *));	/* function to handle line */
 } pseudo_ops_t;
 
-static pseudo_ops_t pseudo_ops[] = {
+static const pseudo_ops_t pseudo_ops[] = {
   { "#.def",	sizeof("#.def")-1,	parse_def },
   { "#.begin",	sizeof("#.begin")-1,	parse_begin },
   { "#.bend",	sizeof("#.bend")-1,	parse_bend },
diff -rup orig/egcc-CVS20020101/gcc/protoize.c egcc-CVS20020101/gcc/protoize.c
--- orig/egcc-CVS20020101/gcc/protoize.c	Wed Dec 26 22:31:45 2001
+++ egcc-CVS20020101/gcc/protoize.c	Wed Jan  2 11:18:12 2002
@@ -207,7 +207,7 @@ static const int hash_mask = (HASH_TABLE
 
 static const struct default_include { const char *const fname; 
 			 const char *const component;
-			 int x1, x2; } include_defaults[]
+			 const int x1, x2; } include_defaults[]
 #ifdef INCLUDE_DEFAULTS
   = INCLUDE_DEFAULTS;
 #else
diff -rup orig/egcc-CVS20020101/libiberty/cp-demangle.c egcc-CVS20020101/libiberty/cp-demangle.c
--- orig/egcc-CVS20020101/libiberty/cp-demangle.c	Sun Oct  7 10:27:59 2001
+++ egcc-CVS20020101/libiberty/cp-demangle.c	Wed Jan  2 11:18:12 2002
@@ -3945,7 +3945,7 @@ print_usage (fp, exit_value)
 }
 
 /* Option specification for getopt_long.  */
-static struct option long_options[] = 
+static const struct option long_options[] = 
 {
   { "help",    no_argument, NULL, 'h' },
   { "strict",  no_argument, NULL, 's' },
diff -rup orig/egcc-CVS20020101/libiberty/cplus-dem.c egcc-CVS20020101/libiberty/cplus-dem.c
--- orig/egcc-CVS20020101/libiberty/cplus-dem.c	Thu Dec 13 07:30:52 2001
+++ egcc-CVS20020101/libiberty/cplus-dem.c	Wed Jan  2 11:18:13 2002
@@ -4966,7 +4966,7 @@ extern int prepends_underscore;
 
 int strip_underscore = 0;
 
-static struct option long_options[] = {
+static const struct option long_options[] = {
   {"strip-underscores", no_argument, 0, '_'},
   {"format", required_argument, 0, 's'},
   {"help", no_argument, 0, 'h'},


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]