From: Richard Henderson Date: Fri, 7 Sep 2001 22:14:43 +0000 (-0700) Subject: c-common.c (signed_or_unsigned_type): Handle machine mode types which have no corresp... X-Git-Tag: prereleases/libstdc++-3.0.95~2200 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a063bec6e3b164cf467ee99e423f9271177be86;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc838bc219df..75d8514d5a42 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,7 +1,14 @@ -2001-09-06 Aldy Hernandez +2001-09-07 Roman Lechtchinsky + + * 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. + +2001-09-07 Aldy Hernandez - * config/mips/mips.c (override_options): Do not override ISA when ABI - specified if MIPS_CPU_STRING_DEFAULT was specified. + * config/mips/mips.c (override_options): Do not override ISA when ABI + specified if MIPS_CPU_STRING_DEFAULT was specified. 2001-09-07 Richard Henderson @@ -111,7 +118,7 @@ Thu Sep 6 11:16:35 2001 Jeffrey A Law (law@cygnus.com) 2001-09-05 Ziemowit Laski - * objc/objc-act.c (build_message_expr): If a class method cannot + * objc/objc-act.c (build_message_expr): If a class method cannot be found, do not issue a warning if a corresponding instance method exists in the root class. diff --git a/gcc/c-common.c b/gcc/c-common.c index 84a9262f022a..72b1417f8d43 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; } diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 90d9f16b69e3..7cefaeaef0e7 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -821,10 +821,10 @@ target_isinf (x) unsigned sign : 1; unsigned exponent : 11; unsigned mantissa1 : 20; - unsigned mantissa2; + unsigned mantissa2 : 32; } little_endian; struct { - unsigned mantissa2; + unsigned mantissa2 : 32; unsigned mantissa1 : 20; unsigned exponent : 11; unsigned sign : 1; @@ -861,10 +861,10 @@ target_isnan (x) unsigned sign : 1; unsigned exponent : 11; unsigned mantissa1 : 20; - unsigned mantissa2; + unsigned mantissa2 : 32; } little_endian; struct { - unsigned mantissa2; + unsigned mantissa2 : 32; unsigned mantissa1 : 20; unsigned exponent : 11; unsigned sign : 1; @@ -901,10 +901,10 @@ target_negative (x) unsigned sign : 1; unsigned exponent : 11; unsigned mantissa1 : 20; - unsigned mantissa2; + unsigned mantissa2 : 32; } little_endian; struct { - unsigned mantissa2; + unsigned mantissa2 : 32; unsigned mantissa1 : 20; unsigned exponent : 11; unsigned sign : 1;