From 4a063bec6e3b164cf467ee99e423f9271177be86 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 7 Sep 2001 15:14:43 -0700 Subject: c-common.c (signed_or_unsigned_type): Handle machine mode types which have no corresponding C type. * c-common.c (signed_or_unsigned_type): Handle machine mode types which have no corresponding C type. * fold_const.c (target_isinf,target_isnan,target_negative): Update the representation of 64-bit doubles to work with 64-bit ints. From-SVN: r45479 --- gcc/c-common.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'gcc/c-common.c') diff --git a/gcc/c-common.c b/gcc/c-common.c index 84a9262..72b1417 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -2071,6 +2071,20 @@ signed_or_unsigned_type (unsignedp, type) if (TYPE_PRECISION (type) == TYPE_PRECISION (widest_integer_literal_type_node)) return (unsignedp ? widest_unsigned_literal_type_node : widest_integer_literal_type_node); + +#if HOST_BITS_PER_WIDE_INT >= 64 + if (TYPE_PRECISION (type) == TYPE_PRECISION (intTI_type_node)) + return unsignedp ? unsigned_intTI_type_node : intTI_type_node; +#endif + if (TYPE_PRECISION (type) == TYPE_PRECISION (intDI_type_node)) + return unsignedp ? unsigned_intDI_type_node : intDI_type_node; + if (TYPE_PRECISION (type) == TYPE_PRECISION (intSI_type_node)) + return unsignedp ? unsigned_intSI_type_node : intSI_type_node; + if (TYPE_PRECISION (type) == TYPE_PRECISION (intHI_type_node)) + return unsignedp ? unsigned_intHI_type_node : intHI_type_node; + if (TYPE_PRECISION (type) == TYPE_PRECISION (intQI_type_node)) + return unsignedp ? unsigned_intQI_type_node : intQI_type_node; + return type; } -- cgit v1.1