Patch installed: warnings from halfpic.[ch]

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Sun Oct 28 06:04:00 GMT 2001


This patch cleans up warnings from halfpic.[ch].  Tested via a cross
compile of cc1 to mips-dec-osfrose (one of two targets using
halfpic.o).  All .o modules compiled except final.o for unrelated
reasons.

I also did a full bootstrap & testsuite on solaris2.7.  No regressions
were found, installed as "obvious".


2001-10-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
	* i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
	(FUNCTION_PROFILER): Const-ify.
	* halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
	(eliminate_constant_term, assemble_name, output_addr_const):
	Remove declarations.
	(ptr_half_pic_address_p, half_pic_hash): Prototype.
	(all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
	half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
	* halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
	(half_pic_declare, half_pic_external): Const-ify.
	* toplev.c: Include "halfpic.h".
	
diff -rup orig/egcs-CVS20011026/gcc/Makefile.in egcs-CVS20011026/gcc/Makefile.in
--- orig/egcs-CVS20011026/gcc/Makefile.in	Sat Oct 27 11:59:00 2001
+++ egcs-CVS20011026/gcc/Makefile.in	Sat Oct 27 12:28:01 2001
@@ -1370,7 +1370,7 @@ toplev.o : toplev.c $(CONFIG_H) $(SYSTEM
    debug.h insn-config.h intl.h $(RECOG_H) Makefile toplev.h \
    dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
    graph.h $(LOOP_H) except.h $(REGS_H) $(TIMEVAR_H) $(lang_options_files) \
-   ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H)
+   ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) halfpic.h
 	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 	  -DTARGET_NAME=\"$(target_alias)\" \
 	  -c $(srcdir)/toplev.c
@@ -1616,7 +1616,7 @@ mips-tdump: mips-tdump.o version.o $(LIB
 mips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H)
 
 # Build file to support OSF/rose half-pic format.
-halfpic.o: halfpic.c $(CONFIG_H) $(RTL_H) $(TREE_H) $(SYSTEM_H)
+halfpic.o: halfpic.c $(CONFIG_H) $(RTL_H) $(TREE_H) $(SYSTEM_H) halfpic.h
 
 #
 # Generate header and source files from the machine description,
diff -rup orig/egcs-CVS20011026/gcc/config/i386/osfrose.h egcs-CVS20011026/gcc/config/i386/osfrose.h
--- orig/egcs-CVS20011026/gcc/config/i386/osfrose.h	Tue Sep 11 13:36:08 2001
+++ egcs-CVS20011026/gcc/config/i386/osfrose.h	Sat Oct 27 12:30:42 2001
@@ -58,7 +58,7 @@ Boston, MA 02111-1307, USA.  */
 #define SUBTARGET_SWITCHES						\
      { "half-pic",		 MASK_HALF_PIC,				\
        N_("Emit half-PIC code") },					\
-     { "no-half-pic",		-MASK_HALF_PIC, "" }			\
+     { "no-half-pic",		-MASK_HALF_PIC, "" },			\
      { "debug-half-pic",	 MASK_HALF_PIC_DEBUG,			\
        0 /* intentionally undoc */ },					\
      { "debugb",		 MASK_HALF_PIC_DEBUG,			\
@@ -209,8 +209,8 @@ do									\
   {									\
     if (!OSF_PROFILE_BEFORE_PROLOGUE)					\
       {									\
-	char *prefix = (TARGET_UNDERSCORES) ? "_" : "";			\
-	char *lprefix = LPREFIX;					\
+	const char *const prefix = (TARGET_UNDERSCORES) ? "_" : "";	\
+	const char *const lprefix = LPREFIX;				\
 	int labelno = LABELNO;						\
 									\
 	/* Note that OSF/rose blew it in terms of calling mcount,	\
diff -rup orig/egcs-CVS20011026/gcc/halfpic.c egcs-CVS20011026/gcc/halfpic.c
--- orig/egcs-CVS20011026/gcc/halfpic.c	Wed Aug 22 16:30:42 2001
+++ egcs-CVS20011026/gcc/halfpic.c	Sat Oct 27 11:51:45 2001
@@ -35,19 +35,18 @@ Software Foundation, 59 Temple Place - S
 #include "system.h"
 #include "tree.h"
 #include "rtl.h"
+#include "expr.h"
+#include "output.h"
 #include "obstack.h"
+#include "halfpic.h"
 
 #define obstack_chunk_alloc xmalloc
 #define obstack_chunk_free free
 
-extern rtx eliminate_constant_term ();
-extern void assemble_name ();
-extern void output_addr_const ();
-
 int flag_half_pic		= 0;	/* Global half-pic flag.  */
 int half_pic_number_ptrs	= 0;	/* # distinct pointers found */
 int half_pic_number_refs	= 0;	/* # half-pic references */
-int (*ptr_half_pic_address_p)() = half_pic_address_p;
+int (*ptr_half_pic_address_p) PARAMS ((rtx)) = half_pic_address_p;
 
 /* Obstack to hold generated pic names.  */
 static struct obstack half_pic_obstack;
@@ -59,15 +58,15 @@ struct all_refs {
   struct all_refs *next;	/* next name created */
   int		   external_p;	/* name is an external reference */
   int		   pointer_p;	/* pointer created.  */
-  char		  *ref_name;	/* reference name to ptr to real_name */
+  const char	  *ref_name;	/* reference name to ptr to real_name */
   int		   ref_len;	/* reference name length */
-  char		  *real_name;	/* real function/data name */
+  const char	  *real_name;	/* real function/data name */
   int		   real_len;	/* strlen (real_name) */
 };
 
 static struct all_refs *half_pic_names;
 
-static char *half_pic_prefix;
+static const char *half_pic_prefix;
 static int   half_pic_prefix_len;
 
 
@@ -83,16 +82,18 @@ static int   half_pic_prefix_len;
 
 #define HASHBITS 30
 
+static struct all_refs *half_pic_hash PARAMS ((const char *, int, int));
+
 static struct all_refs *
 half_pic_hash (name, len, create_p)
-     char *name;		/* name to hash */
+     const char *name;		/* name to hash */
      int len;			/* length of the name (or 0 to call strlen) */
      int create_p;		/* != 0 to create new hash bucket if new */
 {
   static struct all_refs *hash_table[MAX_HASH_TABLE];
   static struct all_refs  zero_all_refs;
 
-  unsigned char *uname;
+  const unsigned char *uname;
   int hash;
   int i;
   int ch;
@@ -103,7 +104,7 @@ half_pic_hash (name, len, create_p)
     len = strlen (name);
 
   /* Compute hash code */
-  uname = (unsigned char *)name;
+  uname = (const unsigned char *)name;
   ch = uname[0];
   hash = len * 613 + ch;
   for (i = 1; i < len; i += 2)
@@ -246,7 +247,7 @@ half_pic_encode (decl)
 
 void
 half_pic_declare (name)
-     char *name;
+     const char *name;
 {
   struct all_refs *ptr;
 
@@ -270,7 +271,7 @@ half_pic_declare (name)
 
 void
 half_pic_external (name)
-     char *name;
+     const char *name;
 {
   struct all_refs *ptr;
 
@@ -296,7 +297,7 @@ int
 half_pic_address_p (addr)
      rtx addr;
 {
-  char *name;
+  const char *name;
   int len;
   struct all_refs *ptr;
 
@@ -363,7 +364,7 @@ struct rtx_def *
 half_pic_ptr (operand)
      rtx operand;
 {
-  char *name;
+  const char *name;
   struct all_refs *p;
   int len;
 
diff -rup orig/egcs-CVS20011026/gcc/halfpic.h egcs-CVS20011026/gcc/halfpic.h
--- orig/egcs-CVS20011026/gcc/halfpic.h	Wed Aug 22 16:30:42 2001
+++ egcs-CVS20011026/gcc/halfpic.h	Sat Oct 27 11:48:45 2001
@@ -35,18 +35,19 @@ struct rtx_def;
    be true in the gen* programs).  */
 
 int flag_half_pic;			/* Global half-pic flag.  */
-int (*ptr_half_pic_address_p) ();	/* ptr to half_pic_address_p () */
+int (*ptr_half_pic_address_p) PARAMS ((struct rtx_def *)); /* ptr to half_pic_address_p () */
 
 extern int  half_pic_number_ptrs;				/* # distinct pointers found */
 extern int  half_pic_number_refs;				/* # half-pic references */
-extern void half_pic_encode PARAMS ((union tree_node *));		/* encode whether half-pic */
-extern void half_pic_declare PARAMS ((char *));			/* declare object local */
-extern void half_pic_external PARAMS ((char *));			/* declare object external */
+extern void half_pic_encode PARAMS ((union tree_node *));	/* encode whether half-pic */
+extern void half_pic_declare PARAMS ((const char *));		/* declare object local */
+extern void half_pic_external PARAMS ((const char *));		/* declare object external */
 extern void half_pic_init PARAMS ((void));			/* half_pic initialization */
 extern int  half_pic_address_p PARAMS ((struct rtx_def *));	/* true if an address is half-pic */
 extern struct rtx_def *half_pic_ptr PARAMS ((struct rtx_def *));	/* return RTX for half-pic pointer */
-/* Can't use prototype since FILE isn't defined yet.  */
-extern void half_pic_finish (/* FILE * */);		/* half_pic termination */
+#ifdef BUFSIZ
+extern void half_pic_finish PARAMS ((FILE *));	/* half_pic termination */
+#endif
 
 /* Macros to provide access to the half-pic stuff (so they can easily
    be stubbed out.  */
diff -rup orig/egcs-CVS20011026/gcc/toplev.c egcs-CVS20011026/gcc/toplev.c
--- orig/egcs-CVS20011026/gcc/toplev.c	Sat Oct 27 11:59:12 2001
+++ egcs-CVS20011026/gcc/toplev.c	Sat Oct 27 12:15:49 2001
@@ -85,6 +85,10 @@ Software Foundation, 59 Temple Place - S
 #include "xcoffout.h"		/* Needed for external data
 				   declarations for e.g. AIX 4.x.  */
 #endif
+
+#ifdef HALF_PIC_DEBUG
+#include "halfpic.h"
+#endif
 
 #ifdef VMS
 /* The extra parameters substantially improve the I/O performance.  */




More information about the Gcc-patches mailing list