[patch] Promote xImode types to int
Roman Lechtchinsky
rl@cs.tu-berlin.de
Sat Sep 15 11:57:00 GMT 2001
On Fri, 14 Sep 2001, Richard Henderson wrote:
> > I'm not sure if just checking whether an INTEGER_TYPE is smaller than
> > an int is sufficient here. Should that be the case I'll simplify and
> > resubmit the patch.
>
> I would think so. You still have to check the known types, since
> the boundary condition of sizeof(short) == sizeof(int) is supposed
> to promote, but not sizeof(long) == sizeof(int).
Ok, then this should work. Bootstrapped and regtested on
sparc-sun-solaris2.8.
Bye
Roman
2001-09-15 Roman Lechtchinsky <rl@cs.tu-berlin.de>
* c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
Index: c-common.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-common.c,v
retrieving revision 1.250
diff -c -3 -p -r1.250 c-common.c
*** c-common.c 2001/09/12 17:17:48 1.250
--- c-common.c 2001/09/15 18:50:34
*************** c_promoting_integer_type_p (t)
*** 3391,3397 ****
|| TYPE_MAIN_VARIANT (t) == signed_char_type_node
|| TYPE_MAIN_VARIANT (t) == unsigned_char_type_node
|| TYPE_MAIN_VARIANT (t) == short_integer_type_node
! || TYPE_MAIN_VARIANT (t) == short_unsigned_type_node);
case ENUMERAL_TYPE:
/* ??? Technically all enumerations not larger than an int
--- 3391,3398 ----
|| TYPE_MAIN_VARIANT (t) == signed_char_type_node
|| TYPE_MAIN_VARIANT (t) == unsigned_char_type_node
|| TYPE_MAIN_VARIANT (t) == short_integer_type_node
! || TYPE_MAIN_VARIANT (t) == short_unsigned_type_node
! || TYPE_PRECISION (t) < TYPE_PRECISION (integer_type_node));
case ENUMERAL_TYPE:
/* ??? Technically all enumerations not larger than an int
More information about the Gcc-patches
mailing list