Patch for more signed/unsigned warnings

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Thu Aug 1 18:05:00 GMT 2002


The patch below fixes these signed/unsigned warnings:

Generic warnings:
 > regclass.c:486: warning: comparison between signed and unsigned
 > regclass.c:1858: warning: comparison between signed and unsigned
 > regclass.c:1865: warning: comparison between signed and unsigned
 > reload.c:5599: warning: comparison between signed and unsigned


Warnings found on mips-irix6.2:
 > loop.c:900: warning: comparison between signed and unsigned
 > loop.c:931: warning: comparison between signed and unsigned
 > loop.c:1033: warning: comparison between signed and unsigned
 > loop.c:2174: warning: comparison between signed and unsigned
 > loop.c:2239: warning: comparison between signed and unsigned
 > loop.c:3499: warning: comparison between signed and unsigned
 > reload.c:829: warning: comparison between signed and unsigned
 > reload.c:1007: warning: comparison between signed and unsigned
 > reload.c:1109: warning: comparison between signed and unsigned


Warnings found on sparc-solaris2.7:
 > regclass.c:700: warning: comparison between signed and unsigned
 > regclass.c:710: warning: comparison between signed and unsigned
 > regclass.c:720: warning: comparison between signed and unsigned
 > regclass.c:730: warning: comparison between signed and unsigned
 > regclass.c:741: warning: comparison between signed and unsigned
 > regclass.c:1871: warning: comparison between signed and unsigned
 > regclass.c:1878: warning: comparison between signed and unsigned


Bootstrapped on mips-sgi-irix6.2 and sparc-sun-solaris2.7.

Ok to install?

		Thanks,
		--Kaveh


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

	* loop.c (scan_loop, move_movables, count_one_set): Cast to avoid
	signed/unsigned warnings.

	* regclass.c (init_reg_sets_1, choose_hard_reg_mode,
	record_reg_classes): Likewise.

	* reload.c (reload_inner_reg_of_subreg, push_reload,
	find_reloads_address_1): Likewise.

diff -rup orig/egcc-CVS20020731/gcc/loop.c egcc-CVS20020731/gcc/loop.c
--- orig/egcc-CVS20020731/gcc/loop.c	Tue Jul 23 16:00:14 2002
+++ egcc-CVS20020731/gcc/loop.c	Thu Aug  1 16:51:27 2002
@@ -897,7 +897,7 @@ scan_loop (loop, flags)
 				   SET_DEST (set), copy_rtx (SET_SRC (set)));
 
 		  delete_insn (p);
-		  for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++)
+		  for (i = 0; i < (int) LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++)
 		    regs->array[regno+i].set_in_loop = 0;
 		  continue;
 		}
@@ -928,7 +928,7 @@ scan_loop (loop, flags)
 	      m->savings = regs->array[regno].n_times_set;
 	      if (find_reg_note (p, REG_RETVAL, NULL_RTX))
 		m->savings += libcall_benefit (p);
-	      for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++)
+	      for (i = 0; i < (int) LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++)
 		regs->array[regno+i].set_in_loop = move_insn ? -2 : -1;
 	      /* Add M to the end of the chain MOVABLES.  */
 	      loop_movables_add (movables, m);
@@ -1030,7 +1030,7 @@ scan_loop (loop, flags)
 		  m->match = 0;
 		  m->lifetime = LOOP_REG_LIFETIME (loop, regno);
 		  m->savings = 1;
-		  for (i = 0; i < LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++)
+		  for (i = 0; i < (int) LOOP_REGNO_NREGS (regno, SET_DEST (set)); i++)
 		    regs->array[regno+i].set_in_loop = -1;
 		  /* Add M to the end of the chain MOVABLES.  */
 		  loop_movables_add (movables, m);
@@ -2171,7 +2171,7 @@ move_movables (loop, movables, threshold
 	      if (! m->partial)
 		{
 		  int i;
-		  for (i = 0; i < LOOP_REGNO_NREGS (regno, m->set_dest); i++)
+		  for (i = 0; i < (int) LOOP_REGNO_NREGS (regno, m->set_dest); i++)
 		    regs->array[regno+i].set_in_loop = 0;
 		}
 
@@ -2236,7 +2236,7 @@ move_movables (loop, movables, threshold
 			{
 			  int i;
 			  for (i = 0;
-			       i < LOOP_REGNO_NREGS (regno, m1->set_dest);
+			       i < (int) LOOP_REGNO_NREGS (regno, m1->set_dest);
 			       i++)
 			    regs->array[m1->regno+i].set_in_loop = 0;
 			}
@@ -3496,7 +3496,7 @@ count_one_set (regs, insn, x, last_set)
 	{
 	  int i;
 	  int regno = REGNO (dest);
-	  for (i = 0; i < LOOP_REGNO_NREGS (regno, dest); i++)
+	  for (i = 0; i < (int) LOOP_REGNO_NREGS (regno, dest); i++)
 	    {
 	      /* If this is the first setting of this reg
 		 in current basic block, and it was set before,
diff -rup orig/egcc-CVS20020731/gcc/regclass.c egcc-CVS20020731/gcc/regclass.c
--- orig/egcc-CVS20020731/gcc/regclass.c	Tue Jul 23 17:24:45 2002
+++ egcc-CVS20020731/gcc/regclass.c	Thu Aug  1 16:41:35 2002
@@ -483,7 +483,7 @@ init_reg_sets_1 ()
   memset (allocatable_regs_of_mode, 0, sizeof (allocatable_regs_of_mode));
   for (m = 0; m < (unsigned int) MAX_MACHINE_MODE; m++)
     for (i = 0; i < N_REG_CLASSES; i++)
-      if (CLASS_MAX_NREGS (i, m) <= reg_class_size[i])
+      if ((unsigned) CLASS_MAX_NREGS (i, m) <= reg_class_size[i])
 	for (j = 0; j < FIRST_PSEUDO_REGISTER; j++)
 	  if (!fixed_regs [j] && TEST_HARD_REG_BIT (reg_class_contents[i], j)
 	      && HARD_REGNO_MODE_OK (j, m))
@@ -696,7 +696,7 @@ choose_hard_reg_mode (regno, nregs)
   for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
        mode != VOIDmode;
        mode = GET_MODE_WIDER_MODE (mode))
-    if (HARD_REGNO_NREGS (regno, mode) == nregs
+    if ((unsigned) HARD_REGNO_NREGS (regno, mode) == nregs
 	&& HARD_REGNO_MODE_OK (regno, mode))
       found_mode = mode;
 
@@ -706,7 +706,7 @@ choose_hard_reg_mode (regno, nregs)
   for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
        mode != VOIDmode;
        mode = GET_MODE_WIDER_MODE (mode))
-    if (HARD_REGNO_NREGS (regno, mode) == nregs
+    if ((unsigned) HARD_REGNO_NREGS (regno, mode) == nregs
 	&& HARD_REGNO_MODE_OK (regno, mode))
       found_mode = mode;
 
@@ -716,7 +716,7 @@ choose_hard_reg_mode (regno, nregs)
   for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_FLOAT);
        mode != VOIDmode;
        mode = GET_MODE_WIDER_MODE (mode))
-    if (HARD_REGNO_NREGS (regno, mode) == nregs
+    if ((unsigned) HARD_REGNO_NREGS (regno, mode) == nregs
 	&& HARD_REGNO_MODE_OK (regno, mode))
       found_mode = mode;
 
@@ -726,7 +726,7 @@ choose_hard_reg_mode (regno, nregs)
   for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_INT);
        mode != VOIDmode;
        mode = GET_MODE_WIDER_MODE (mode))
-    if (HARD_REGNO_NREGS (regno, mode) == nregs
+    if ((unsigned) HARD_REGNO_NREGS (regno, mode) == nregs
 	&& HARD_REGNO_MODE_OK (regno, mode))
       found_mode = mode;
 
@@ -737,7 +737,7 @@ choose_hard_reg_mode (regno, nregs)
   for (m = (unsigned int) CCmode; m < (unsigned int) NUM_MACHINE_MODES; ++m)
     {
       mode = (enum machine_mode) m;
-      if (HARD_REGNO_NREGS (regno, mode) == nregs
+      if ((unsigned) HARD_REGNO_NREGS (regno, mode) == nregs
 	  && HARD_REGNO_MODE_OK (regno, mode))
 	return mode;
     }
@@ -1855,27 +1855,27 @@ record_reg_classes (n_alts, n_ops, ops, 
 	      enum reg_class pref = reg_pref[regno].prefclass;
 
 	      if ((reg_class_size[(unsigned char) pref]
-		   == CLASS_MAX_NREGS (pref, mode))
+		   == (unsigned) CLASS_MAX_NREGS (pref, mode))
 		  && REGISTER_MOVE_COST (mode, pref, pref) < 10 * 2)
 		op_costs[i].cost[(unsigned char) pref] = -1;
 	    }
 	  else if (regno < FIRST_PSEUDO_REGISTER)
 	    for (class = 0; class < N_REG_CLASSES; class++)
 	      if (TEST_HARD_REG_BIT (reg_class_contents[class], regno)
-		  && reg_class_size[class] == CLASS_MAX_NREGS (class, mode))
+		  && reg_class_size[class] == (unsigned) CLASS_MAX_NREGS (class, mode))
 		{
 		  if (reg_class_size[class] == 1)
 		    op_costs[i].cost[class] = -1;
 		  else
 		    {
-		      for (nr = 0; nr < HARD_REGNO_NREGS (regno, mode); nr++)
+		      for (nr = 0; nr < (unsigned) HARD_REGNO_NREGS (regno, mode); nr++)
 			{
 			  if (! TEST_HARD_REG_BIT (reg_class_contents[class],
 						   regno + nr))
 			    break;
 			}
 
-		      if (nr == HARD_REGNO_NREGS (regno,mode))
+		      if (nr == (unsigned) HARD_REGNO_NREGS (regno,mode))
 			op_costs[i].cost[class] = -1;
 		    }
 		}
diff -rup orig/egcc-CVS20020731/gcc/reload.c egcc-CVS20020731/gcc/reload.c
--- orig/egcc-CVS20020731/gcc/reload.c	Tue Jul 23 17:24:45 2002
+++ egcc-CVS20020731/gcc/reload.c	Thu Aug  1 16:57:47 2002
@@ -826,7 +826,7 @@ reload_inner_reg_of_subreg (x, mode)
   return (GET_MODE_SIZE (mode) <= UNITS_PER_WORD
 	  && GET_MODE_SIZE (GET_MODE (inner)) > UNITS_PER_WORD
 	  && ((GET_MODE_SIZE (GET_MODE (inner)) / UNITS_PER_WORD)
-	      != HARD_REGNO_NREGS (REGNO (inner), GET_MODE (inner))));
+	      != (int) HARD_REGNO_NREGS (REGNO (inner), GET_MODE (inner))));
 }
 
 /* Record one reload that needs to be performed.
@@ -1003,8 +1003,8 @@ push_reload (in, out, inloc, outloc, cla
 		       > UNITS_PER_WORD)
 		   && ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (in)))
 			/ UNITS_PER_WORD)
-		       != HARD_REGNO_NREGS (REGNO (SUBREG_REG (in)),
-					    GET_MODE (SUBREG_REG (in)))))
+		       != (int) HARD_REGNO_NREGS (REGNO (SUBREG_REG (in)),
+						  GET_MODE (SUBREG_REG (in)))))
 		  || ! HARD_REGNO_MODE_OK (subreg_regno (in), inmode)))
 #ifdef SECONDARY_INPUT_RELOAD_CLASS
 	  || (SECONDARY_INPUT_RELOAD_CLASS (class, inmode, in) != NO_REGS
@@ -1105,8 +1105,8 @@ push_reload (in, out, inloc, outloc, cla
 		       > UNITS_PER_WORD)
 		   && ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (out)))
 			/ UNITS_PER_WORD)
-		       != HARD_REGNO_NREGS (REGNO (SUBREG_REG (out)),
-					    GET_MODE (SUBREG_REG (out)))))
+		       != (int) HARD_REGNO_NREGS (REGNO (SUBREG_REG (out)),
+						  GET_MODE (SUBREG_REG (out)))))
 		  || ! HARD_REGNO_MODE_OK (subreg_regno (out), outmode)))
 #ifdef SECONDARY_OUTPUT_RELOAD_CLASS
 	  || (SECONDARY_OUTPUT_RELOAD_CLASS (class, outmode, out) != NO_REGS
@@ -5595,7 +5595,7 @@ find_reloads_address_1 (mode, x, context
 	    {
 	      enum reg_class class = (context ? INDEX_REG_CLASS
 				      : MODE_BASE_REG_CLASS (mode));
-	      if (CLASS_MAX_NREGS (class, GET_MODE (SUBREG_REG (x)))
+	      if ((unsigned) CLASS_MAX_NREGS (class, GET_MODE (SUBREG_REG (x)))
 		  > reg_class_size[class])
 		{
 		  x = find_reloads_subreg_address (x, 0, opnum, type,



More information about the Gcc-patches mailing list