aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOvidiu Predescu <ovidiu@cup.hp.com>1999-02-16 15:39:00 +0000
committerOvidiu Predescu <ovidiu@gcc.gnu.org>1999-02-16 15:39:00 +0000
commit6b99d47087fb99be38053525546ea3be51b6fe8e (patch)
tree762fbcf73766bc75259f6fb035f47cc06f775f74 /gcc
parentebf84769665f182660c762a68e909a249d00625a (diff)
downloadgcc-6b99d47087fb99be38053525546ea3be51b6fe8e.zip
gcc-6b99d47087fb99be38053525546ea3be51b6fe8e.tar.gz
gcc-6b99d47087fb99be38053525546ea3be51b6fe8e.tar.bz2
Applied Richard Frith-Macdonald's patch to objc/objc-act.c for encoding the type.
From-SVN: r25249
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/objc/objc-act.c82
2 files changed, 46 insertions, 42 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0b6bbdf..d7008df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Tue Feb 16 15:31:39 1999 Ovidiu Predescu <ovidiu@cup.hp.com>
+
+ * objc/objc-act.c (encode_type): Encode the type instead of
+ encoding the mode of the type (patch from Richard Frith-Macdonald
+ <richard@brainstorm.co.uk>).
+
Tue Feb 16 10:53:51 1999 Richard Earnshaw (rearnsha@arm.com)
* config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index e53b26f..7f53d17 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -6782,38 +6782,37 @@ encode_type (type, curtype, format)
{
/* Unsigned integer types. */
- if (TYPE_MODE (type) == QImode)
+ 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)
obstack_1grow (&util_obstack, 'C');
- else if (TYPE_MODE (type) == HImode)
+ else if (type == short_unsigned_type_node)
obstack_1grow (&util_obstack, 'S');
- 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)
+ else if (type == long_long_unsigned_type_node)
obstack_1grow (&util_obstack, 'Q');
+ else
+ fatal ("attempt to encode unsigned int of unknown type");
}
else
/* Signed integer types. */
{
- if (TYPE_MODE (type) == QImode)
+ 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)
obstack_1grow (&util_obstack, 'c');
- else if (TYPE_MODE (type) == HImode)
+ else if (type == short_integer_type_node)
obstack_1grow (&util_obstack, 's');
- 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)
+ else if (type == long_long_integer_type_node)
obstack_1grow (&util_obstack, 'q');
+ else
+ fatal ("attempt to encode signed int of unknown type");
}
}
@@ -6858,38 +6857,37 @@ encode_complete_bitfield (int position, tree type, int size)
{
/* Unsigned integer types. */
- if (TYPE_MODE (type) == QImode)
+ 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)
charType = 'C';
- else if (TYPE_MODE (type) == HImode)
+ else if (type == short_unsigned_type_node)
charType = 'S';
- else if (TYPE_MODE (type) == SImode)
- {
- if (type == long_unsigned_type_node)
- charType = 'L';
- else
- charType = 'I';
- }
- else if (TYPE_MODE (type) == DImode)
+ else if (type == long_long_unsigned_type_node)
charType = 'Q';
+ else
+ fatal ("attempt to encode unsigned int of unknown type");
}
else
/* Signed integer types. */
{
- if (TYPE_MODE (type) == QImode)
+ 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)
charType = 'c';
- else if (TYPE_MODE (type) == HImode)
+ else if (type == short_unsigned_type_node)
charType = 's';
- else if (TYPE_MODE (type) == SImode)
- {
- if (type == long_integer_type_node)
- charType = 'l';
- else
- charType = 'i';
- }
-
- else if (TYPE_MODE (type) == DImode)
+ else if (type == long_long_unsigned_type_node)
charType = 'q';
+ else
+ fatal ("attempt to encode signed int of unknown type");
}
}