* ra-build.c (undef_to_size_word): Avoid `switch' warning.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Sat, 18 Jan 2003 03:07:26 +0000 (03:07 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Sat, 18 Jan 2003 03:07:26 +0000 (03:07 +0000)
From-SVN: r61464

gcc/ChangeLog
gcc/ra-build.c

index 31206e760e7a43622b3b9eede9d608fb549ec49e..fc72b01231271599a0f14694a615f96280da70c9 100644 (file)
@@ -1,3 +1,7 @@
+2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * ra-build.c (undef_to_size_word): Avoid `switch' warning.
+
 2003-01-17  Dale Johannesen  <dalej@apple.com>
 
         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
index d5d923eba027c148a7ef61565297c3ce303d40e6..91bc0145ba2d0460b176056bdcc79687c50d15e7 100644 (file)
@@ -398,8 +398,9 @@ undef_to_size_word (reg, undefined)
     }
 
   /* Otherwise we handle certain cases directly.  */
-  switch (*undefined)
-    {
+  if (*undefined <= 0xffff)
+    switch ((int) *undefined)
+      {
       case 0x00f0 : *undefined = 0; return BL_TO_WORD (4, 4);
       case 0x00ff : *undefined = 0; return BL_TO_WORD (0, 8);
       case 0x0f00 : *undefined = 0; return BL_TO_WORD (8, 4);
@@ -413,29 +414,25 @@ undef_to_size_word (reg, undefined)
       case 0xff00 : *undefined = 0; return BL_TO_WORD (8, 8);
       case 0xfff0 : *undefined = 0xf0; return BL_TO_WORD (8, 8);
       case 0xffff : *undefined = 0; return BL_TO_WORD (0, 16);
+      }
 
-      /* And if nothing matched fall back to the general solution.
-        For now unknown undefined bytes are converted to sequences
-        of maximal length 4 bytes.  We could make this larger if
-        necessary.  */
-      default :
-       {
-         unsigned HOST_WIDE_INT u = *undefined;
-         int word;
-         struct undef_table_s tab;
-         for (word = 0; (u & 15) == 0; word += 4)
-           u >>= 4;
-         u = u & 15;
-         tab = undef_table[u];
-         u = tab.new_undef;
-         u = (*undefined & ~((unsigned HOST_WIDE_INT)15 << word))
-             | (u << word);
-         *undefined = u;
-         /* Size remains the same, only the begin is moved up move bytes.  */
-         return tab.size_word + BL_TO_WORD (word, 0);
-       }
-       break;
-    }
+  /* And if nothing matched fall back to the general solution.  For
+     now unknown undefined bytes are converted to sequences of maximal
+     length 4 bytes.  We could make this larger if necessary.  */
+  {
+    unsigned HOST_WIDE_INT u = *undefined;
+    int word;
+    struct undef_table_s tab;
+    for (word = 0; (u & 15) == 0; word += 4)
+      u >>= 4;
+    u = u & 15;
+    tab = undef_table[u];
+    u = tab.new_undef;
+    u = (*undefined & ~((unsigned HOST_WIDE_INT)15 << word)) | (u << word);
+    *undefined = u;
+    /* Size remains the same, only the begin is moved up move bytes.  */
+    return tab.size_word + BL_TO_WORD (word, 0);
+  }
 }
 
 /* Put the above three functions together.  For a set of undefined bytes