* calls.c (store_one_arg): Fix unsigned comparison warning.
authorManfred Hollstein <mh@suse.com>
Mon, 25 Jul 2005 16:17:01 +0000 (16:17 +0000)
committerManfred Hollstein <manfred@gcc.gnu.org>
Mon, 25 Jul 2005 16:17:01 +0000 (16:17 +0000)
From-SVN: r102363

gcc/ChangeLog
gcc/calls.c

index 413aa48e6aa64c467af81ec56f816b9df1283bf1..8df429108d97a166694549611f62cfab1ea8c751 100644 (file)
@@ -1,3 +1,7 @@
+2005-07-25  Manfred Hollstein  <mh@suse.com>
+
+       * calls.c (store_one_arg): Fix unsigned comparison warning.
+
 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
 
        PR other/22337
index ea6eaeb82f77c45934b22b378e05f00717fcd365..08d73a6608edce06d257429ca55d45e8acbd26ff 100644 (file)
@@ -4080,7 +4080,7 @@ store_one_arg (struct arg_data *arg, rtx argblock, int flags,
   if ((flags & ECF_SIBCALL) && MEM_P (arg->value))
     {
       int i = -1;
-      unsigned int k;
+      unsigned HOST_WIDE_INT k;
       rtx x = arg->value;
 
       if (XEXP (x, 0) == current_function_internal_arg_pointer)
@@ -4098,13 +4098,18 @@ store_one_arg (struct arg_data *arg, rtx argblock, int flags,
 #ifdef ARGS_GROW_DOWNWARD
          i = -i - arg->locate.size.constant;
 #endif
-         for (k = 0; k < arg->locate.size.constant; k++)
-           if (i + k < stored_args_map->n_bits
-               && TEST_BIT (stored_args_map, i + k))
-             {
-               sibcall_failure = 1;
-               break;
-             }
+         if (arg->locate.size.constant > 0)
+           {
+             unsigned HOST_WIDE_INT sc = arg->locate.size.constant;
+
+             for (k = 0; k < sc; k++)
+               if (i + k < stored_args_map->n_bits
+                   && TEST_BIT (stored_args_map, i + k))
+                 {
+                   sibcall_failure = 1;
+                   break;
+                 }
+           }
        }
     }