Commit 1e204133 by Rafael Avila de Espindola Committed by Rafael Espindola

c-common.c (c_common_signed_or_unsigned_type): Delay the check for…

c-common.c (c_common_signed_or_unsigned_type): Delay the check for INTEGRAL_TYPE_P and TYPE_UNSIGNED.

       * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
       INTEGRAL_TYPE_P and TYPE_UNSIGNED.
       * langhooks.c (get_signed_or_unsigned_type): Don't check for
       INTEGRAL_TYPE_P or TYPE_UNSIGNED.
       (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
       TYPE_UNSIGNED.

From-SVN: r125012
parent b9061212
2007-05-16 Rafael Avila de Espindola <espindola@google.com>
* c-common.c (c_common_signed_or_unsigned_type): Delay the check for
INTEGRAL_TYPE_P and TYPE_UNSIGNED.
* langhooks.c (get_signed_or_unsigned_type): Don't check for
INTEGRAL_TYPE_P or TYPE_UNSIGNED.
(lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
TYPE_UNSIGNED.
2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
Nigel Stephens <nigel@mips.com>
Richard Sandiford <richard@codesourcery.com>
......
......@@ -2076,9 +2076,6 @@ tree
c_common_signed_or_unsigned_type (int unsignedp, tree type)
{
tree type1;
if (!INTEGRAL_TYPE_P (type)
|| TYPE_UNSIGNED (type) == unsignedp)
return type;
/* This block of code emulates the behavior of the old
c_common_unsigned_type. In particular, it returns
......@@ -2121,6 +2118,10 @@ c_common_signed_or_unsigned_type (int unsignedp, tree type)
types, and producing a signed or unsigned variant of an
ENUMERAL_TYPE may cause other problems as well. */
if (!INTEGRAL_TYPE_P (type)
|| TYPE_UNSIGNED (type) == unsignedp)
return type;
#define TYPE_OK(node) \
(TYPE_MODE (type) == TYPE_MODE (node) \
&& (c_dialect_cxx () || TYPE_PRECISION (type) == TYPE_PRECISION (node)))
......
......@@ -579,9 +579,6 @@ lhd_builtin_function (tree decl)
tree
get_signed_or_unsigned_type (int unsignedp, tree type)
{
if (!INTEGRAL_TYPE_P (type) || TYPE_UNSIGNED (type) == unsignedp)
return type;
return lang_hooks.types.signed_or_unsigned_type(unsignedp, type);
}
......@@ -590,5 +587,8 @@ get_signed_or_unsigned_type (int unsignedp, tree type)
tree
lhd_signed_or_unsigned_type (int unsignedp, tree type)
{
if (!INTEGRAL_TYPE_P (type) || TYPE_UNSIGNED (type) == unsignedp)
return type;
return lang_hooks.types.type_for_size (TYPE_PRECISION (type), unsignedp);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment