summaryrefslogtreecommitdiff
path: root/gcc/langhooks.c
diff options
context:
space:
mode:
authorespindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-30 22:09:01 +0000
committerespindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-30 22:09:01 +0000
commit81e897e4432b9eb9dbd715cee4c6ba80d355895e (patch)
treeaad122665a7e424450d90c47175d652d463baad7 /gcc/langhooks.c
parent0bbe9142cafba534f128e88ff39cdde5f2d2e18f (diff)
downloadgcc-81e897e4432b9eb9dbd715cee4c6ba80d355895e.tar.gz
gcc/java/ChangeLog:
* typeck.c (java_signed_or_unsigned_type): Remove. (java_signed_type): use get_signed_or_unsigned_type instead of java_signed_or_unsigned_type. (java_unsigned_type): Ditto. * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. * java-tree.h (java_signed_or_unsigned_type): Remove gcc/Changelog: * tree.h(get_signed_or_unsigned_type): New * fold-const.c (operand_equal_for_comparison_p): Use get_signed_or_unsigned_type instead of lang_hooks.types.signed_or_unsigned_type. * expr.c (store_expr): Ditto. * langhooks.c (get_signed_or_unsigned_type): New. (lhd_signed_or_unsigned_type): New * langhooks.h (lhd_signed_or_unsigned_type): New. * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define. gcc/treelang/ChangeLog: * treetree.c (tree_lang_signed_or_unsigned_type): Remove. (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE) Remove. gcc/ada/ChangeLog: * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type instead of gnat_signed_or_unsigned_type. * utils.c (gnat_signed_or_unsigned_type): Remove. * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove * gigi.h (gnat_signed_or_unsigned_type): Remove gcc/forrtan/trans-types.c: * trans-types.c (gfc_signed_or_unsigned_type): Remove. (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of gfc_signed_or_unsigned_type. (gfc_signed_type): Ditto. * trans-types.h (gfc_signed_or_unsigned_type): Remove. * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123373 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/langhooks.c')
-rw-r--r--gcc/langhooks.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/langhooks.c b/gcc/langhooks.c
index 9a33bcafc9e..1ba6ec224cf 100644
--- a/gcc/langhooks.c
+++ b/gcc/langhooks.c
@@ -621,3 +621,24 @@ lhd_builtin_function (tree decl)
lang_hooks.decls.pushdecl (decl);
return decl;
}
+
+/* If TYPE is an integral type, return an equivalent type which is
+ unsigned iff UNSIGNEDP is true. If TYPE is not an integral type,
+ return TYPE itself. */
+
+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);
+}
+
+/* Default implementation of the signed_or_unsigned_type language hook */
+
+tree
+lhd_signed_or_unsigned_type (int unsignedp, tree type)
+{
+ return lang_hooks.types.type_for_size (TYPE_PRECISION (type), unsignedp);
+}