Reverted to the old behavior of encoding the types.
authorOvidiu Predescu <ovidiu@cup.hp.com>
Mon, 22 Feb 1999 09:02:25 +0000 (09:02 +0000)
committerOvidiu Predescu <ovidiu@gcc.gnu.org>
Mon, 22 Feb 1999 09:02:25 +0000 (09:02 +0000)
From-SVN: r25368

gcc/ChangeLog
gcc/objc/objc-act.c

index edde687..a1203e6 100644 (file)
@@ -1,3 +1,9 @@
+Mon Feb 22 08:55:05 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
+
+       * objc/objc-act.c (encode_type): Temporary revert to the old
+       behavior of encoding types as the new one seems to break the
+       encoding of bitfields.
+
 Mon Feb 22 11:40:44 1999  Craig Burley  <craig@jcb-sc.com>
 Sat Feb 20 09:59:36 1999  Craig Burley  <craig@jcb-sc.com>
 
index 2ff65d1..374e35b 100644 (file)
@@ -6782,37 +6782,38 @@ encode_type (type, curtype, format)
        {
          /* Unsigned integer types.  */
 
-         type = TYPE_MAIN_VARIANT (type);
-         if (type == unsigned_type_node)
-           obstack_1grow (&util_obstack, 'I');
-         else if (type == long_unsigned_type_node)
-           obstack_1grow (&util_obstack, 'L');
-         else if (type == unsigned_char_type_node)
+         if (TYPE_MODE (type) == QImode)
            obstack_1grow (&util_obstack, 'C');
-         else if (type == short_unsigned_type_node)
+         else if (TYPE_MODE (type) == HImode)
            obstack_1grow (&util_obstack, 'S');
-         else if (type == long_long_unsigned_type_node)
+         else if (TYPE_MODE (type) == SImode)
+           {
+             if (type == long_unsigned_type_node)
+               obstack_1grow (&util_obstack, 'L');
+             else
+               obstack_1grow (&util_obstack, 'I');
+           }
+         else if (TYPE_MODE (type) == DImode)
            obstack_1grow (&util_obstack, 'Q');
-         else
-           fatal ("attempt to encode unsigned int of unknown type");
        }
 
       else
        /* Signed integer types.  */
        {
-         type = TYPE_MAIN_VARIANT (type);
-         if (type == integer_type_node)
-           obstack_1grow (&util_obstack, 'i');
-         else if (type == long_integer_type_node)
-           obstack_1grow (&util_obstack, 'l');
-         else if (type == char_type_node || type == signed_char_type_node)
+         if (TYPE_MODE (type) == QImode)
            obstack_1grow (&util_obstack, 'c');
-         else if (type == short_integer_type_node)
+         else if (TYPE_MODE (type) == HImode)
            obstack_1grow (&util_obstack, 's');
-         else if (type == long_long_integer_type_node)
+         else if (TYPE_MODE (type) == SImode)
+           {
+             if (type == long_integer_type_node)
+               obstack_1grow (&util_obstack, 'l');
+             else
+               obstack_1grow (&util_obstack, 'i');
+           }
+
+         else if (TYPE_MODE (type) == DImode)
            obstack_1grow (&util_obstack, 'q');
-         else
-           fatal ("attempt to encode signed int of unknown type");
        }
     }
 
@@ -6857,37 +6858,38 @@ encode_complete_bitfield (int position, tree type, int size)
        {
          /* Unsigned integer types.  */
 
-         type = TYPE_MAIN_VARIANT (type);
-         if (type == unsigned_type_node)
-           charType = 'I';
-         else if (type == long_unsigned_type_node)
-           charType = 'L';
-         else if (type == unsigned_char_type_node)
+         if (TYPE_MODE (type) == QImode)
            charType = 'C';
-         else if (type == short_unsigned_type_node)
+         else if (TYPE_MODE (type) == HImode)
            charType = 'S';
-         else if (type == long_long_unsigned_type_node)
+         else if (TYPE_MODE (type) == SImode)
+           {
+             if (type == long_unsigned_type_node)
+               charType = 'L';
+             else
+               charType = 'I';
+           }
+         else if (TYPE_MODE (type) == DImode)
            charType = 'Q';
-         else
-           fatal ("attempt to encode unsigned int of unknown type");
        }
 
       else
        /* Signed integer types.  */
        {
-         type = TYPE_MAIN_VARIANT (type);
-         if (type == unsigned_type_node)
-           charType = 'i';
-         else if (type == long_unsigned_type_node)
-           charType = 'l';
-         else if (type == char_type_node || type == signed_char_type_node)
+         if (TYPE_MODE (type) == QImode)
            charType = 'c';
-         else if (type == short_unsigned_type_node)
+         else if (TYPE_MODE (type) == HImode)
            charType = 's';
-         else if (type == long_long_unsigned_type_node)
+         else if (TYPE_MODE (type) == SImode)
+           {
+             if (type == long_integer_type_node)
+               charType = 'l';
+             else
+               charType = 'i';
+           }
+
+         else if (TYPE_MODE (type) == DImode)
            charType = 'q';
-         else
-           fatal ("attempt to encode signed int of unknown type");
        }
     }