diff options
author | Ovidiu Predescu <ovidiu@cup.hp.com> | 1999-02-16 15:39:00 +0000 |
---|---|---|
committer | Ovidiu Predescu <ovidiu@gcc.gnu.org> | 1999-02-16 15:39:00 +0000 |
commit | 6b99d47087fb99be38053525546ea3be51b6fe8e (patch) | |
tree | 762fbcf73766bc75259f6fb035f47cc06f775f74 /gcc/objc | |
parent | ebf84769665f182660c762a68e909a249d00625a (diff) | |
download | gcc-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/objc')
-rw-r--r-- | gcc/objc/objc-act.c | 82 |
1 files changed, 40 insertions, 42 deletions
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"); } } |