From 47ecd38dbf87d87f64c3db3a9fd2c716e63b6ca7 Mon Sep 17 00:00:00 2001 From: Rafael Avila de Espindola Date: Fri, 30 Mar 2007 22:09:01 +0000 Subject: [PATCH] typeck.c (java_signed_or_unsigned_type): Remove. 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. From-SVN: r123373 --- gcc/ChangeLog | 12 ++++++++++++ gcc/ada/ChangeLog | 8 ++++++++ gcc/ada/gigi.h | 4 ---- gcc/ada/misc.c | 2 -- gcc/ada/trans.c | 2 +- gcc/ada/utils.c | 11 ----------- gcc/expr.c | 2 +- gcc/fold-const.c | 2 +- gcc/fortran/ChangeLog | 9 +++++++++ gcc/fortran/f95-lang.c | 2 -- gcc/fortran/trans-types.c | 16 ++-------------- gcc/fortran/trans-types.h | 1 - gcc/java/ChangeLog | 9 +++++++++ gcc/java/java-tree.h | 1 - gcc/java/lang.c | 2 -- gcc/java/typeck.c | 23 ++--------------------- gcc/langhooks-def.h | 1 + gcc/langhooks.c | 21 +++++++++++++++++++++ gcc/langhooks.h | 1 + gcc/tree.h | 2 ++ gcc/treelang/ChangeLog | 5 +++++ gcc/treelang/treetree.c | 14 -------------- 22 files changed, 75 insertions(+), 75 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b048bc7532a8..7a03dd94da3a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2007-03-30 Rafael Avila de Espindola + + * 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. + 2007-03-30 Richard Henderson * tree-ssa-loop-ivopts.c: Include target.h. diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 8fe5c3cfb514..60901bf6a6c4 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,11 @@ +2007-03-30 Rafael Avila de Espindola + + * 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 + 2007-03-09 Roger Sayle * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h index 1c1c161334dd..b16649fa1a63 100644 --- a/gcc/ada/gigi.h +++ b/gcc/ada/gigi.h @@ -454,10 +454,6 @@ extern tree gnat_unsigned_type (tree type_node); /* Return the signed version of a TYPE_NODE, a scalar type. */ extern tree gnat_signed_type (tree type_node); -/* Return a type the same as TYPE except unsigned or signed according to - UNSIGNEDP. */ -extern tree gnat_signed_or_unsigned_type (int unsignedp, tree type); - /* Create an expression whose value is that of EXPR, converted to type TYPE. The TREE_TYPE of the value is always TYPE. This function implements all reasonable diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c index 67de3ffa7bcf..bd22e7e71e01 100644 --- a/gcc/ada/misc.c +++ b/gcc/ada/misc.c @@ -161,8 +161,6 @@ static tree gnat_type_max_size (tree); #define LANG_HOOKS_SIGNED_TYPE gnat_signed_type #undef LANG_HOOKS_UNSIGNED_TYPE #define LANG_HOOKS_UNSIGNED_TYPE gnat_unsigned_type -#undef LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE -#define LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE gnat_signed_or_unsigned_type #undef LANG_HOOKS_ATTRIBUTE_TABLE #define LANG_HOOKS_ATTRIBUTE_TABLE gnat_internal_attribute_table #undef LANG_HOOKS_BUILTIN_FUNCTION diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c index 965382278b8b..230dccf2ea50 100644 --- a/gcc/ada/trans.c +++ b/gcc/ada/trans.c @@ -876,7 +876,7 @@ Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, int attribute) /* 'Length or 'Range_Length. */ { tree gnu_compute_type - = gnat_signed_or_unsigned_type (0, + = get_signed_or_unsigned_type (0, get_base_type (gnu_result_type)); gnu_result diff --git a/gcc/ada/utils.c b/gcc/ada/utils.c index 42c9a9df23ed..1782ca9eec83 100644 --- a/gcc/ada/utils.c +++ b/gcc/ada/utils.c @@ -2307,17 +2307,6 @@ gnat_signed_type (tree type_node) return type; } -/* Return a type the same as TYPE except unsigned or signed according to - UNSIGNEDP. */ - -tree -gnat_signed_or_unsigned_type (int unsignedp, tree type) -{ - if (!INTEGRAL_TYPE_P (type) || TYPE_UNSIGNED (type) == unsignedp) - return type; - else - return gnat_type_for_size (TYPE_PRECISION (type), unsignedp); -} /* EXP is an expression for the size of an object. If this size contains discriminant references, replace them with the maximum (if MAX_P) or diff --git a/gcc/expr.c b/gcc/expr.c index 1e22c8ca3f82..653eb56ce961 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4384,7 +4384,7 @@ store_expr (tree exp, rtx target, int call_param_p) if (TYPE_UNSIGNED (TREE_TYPE (exp)) != SUBREG_PROMOTED_UNSIGNED_P (target)) exp = fold_convert - (lang_hooks.types.signed_or_unsigned_type + (get_signed_or_unsigned_type (SUBREG_PROMOTED_UNSIGNED_P (target), TREE_TYPE (exp)), exp); exp = fold_convert (lang_hooks.types.type_for_mode diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 66bcbbcd3620..5ee9cf1c5669 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -3032,7 +3032,7 @@ operand_equal_for_comparison_p (tree arg0, tree arg1, tree other) /* Make sure shorter operand is extended the right way to match the longer operand. */ - primarg1 = fold_convert (lang_hooks.types.signed_or_unsigned_type + primarg1 = fold_convert (get_signed_or_unsigned_type (unsignedp1, TREE_TYPE (primarg1)), primarg1); if (operand_equal_p (arg0, fold_convert (type, primarg1), 0)) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ddb515bd9957..1697e44b4d8d 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2007-03-30 Rafael Avila de Espindola + + * 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. + 2007-03-30 Tobias Schlüter * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index 8f9c206c77f5..c498398dd5db 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -115,7 +115,6 @@ static HOST_WIDE_INT gfc_get_alias_set (tree); #undef LANG_HOOKS_TYPE_FOR_SIZE #undef LANG_HOOKS_UNSIGNED_TYPE #undef LANG_HOOKS_SIGNED_TYPE -#undef LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE #undef LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION #undef LANG_HOOKS_CLEAR_BINDING_STACK #undef LANG_HOOKS_GET_ALIAS_SET @@ -141,7 +140,6 @@ static HOST_WIDE_INT gfc_get_alias_set (tree); #define LANG_HOOKS_TYPE_FOR_SIZE gfc_type_for_size #define LANG_HOOKS_UNSIGNED_TYPE gfc_unsigned_type #define LANG_HOOKS_SIGNED_TYPE gfc_signed_type -#define LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE gfc_signed_or_unsigned_type #define LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION gfc_expand_function #define LANG_HOOKS_CLEAR_BINDING_STACK gfc_clear_binding_stack #define LANG_HOOKS_GET_ALIAS_SET gfc_get_alias_set diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index db93a109045c..80cdb25b0d35 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -1832,24 +1832,12 @@ gfc_type_for_mode (enum machine_mode mode, int unsignedp) return NULL_TREE; } -/* Return a type the same as TYPE except unsigned or - signed according to UNSIGNEDP. */ - -tree -gfc_signed_or_unsigned_type (int unsignedp, tree type) -{ - if (TREE_CODE (type) != INTEGER_TYPE || TYPE_UNSIGNED (type) == unsignedp) - return type; - else - return gfc_type_for_size (TYPE_PRECISION (type), unsignedp); -} - /* Return an unsigned type the same as TYPE in other respects. */ tree gfc_unsigned_type (tree type) { - return gfc_signed_or_unsigned_type (1, type); + return get_signed_or_unsigned_type (1, type); } /* Return a signed type the same as TYPE in other respects. */ @@ -1857,7 +1845,7 @@ gfc_unsigned_type (tree type) tree gfc_signed_type (tree type) { - return gfc_signed_or_unsigned_type (0, type); + return get_signed_or_unsigned_type (0, type); } #include "gt-fortran-trans-types.h" diff --git a/gcc/fortran/trans-types.h b/gcc/fortran/trans-types.h index af77c1de7889..2c05f81d51a1 100644 --- a/gcc/fortran/trans-types.h +++ b/gcc/fortran/trans-types.h @@ -76,7 +76,6 @@ tree gfc_type_for_size (unsigned, int); tree gfc_type_for_mode (enum machine_mode, int); tree gfc_unsigned_type (tree); tree gfc_signed_type (tree); -tree gfc_signed_or_unsigned_type (int, tree); tree gfc_get_element_type (tree); tree gfc_get_array_type_bounds (tree, int, tree *, tree *, int); diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 965f7abb41b6..f979728bdaf6 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,12 @@ +2007-03-30 Rafael Avila de Espindola + + * typeck.c (java_signed_or_unsigned_type): Removed. + (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): Removed. + * java-tree.h (java_signed_or_unsigned_type): Removed. + 2007-03-26 Tom Tromey * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1. diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 4a413712fe2d..c11f83e337c4 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -1101,7 +1101,6 @@ extern tree java_type_for_mode (enum machine_mode, int); extern tree java_type_for_size (unsigned int, int); extern tree java_unsigned_type (tree); extern tree java_signed_type (tree); -extern tree java_signed_or_unsigned_type (int, tree); extern tree java_truthvalue_conversion (tree); extern void add_assume_compiled (const char *, int); extern void add_enable_assert (const char *, int); diff --git a/gcc/java/lang.c b/gcc/java/lang.c index b1912cc1128f..723d9a69a435 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -186,8 +186,6 @@ struct language_function GTY(()) #define LANG_HOOKS_SIGNED_TYPE java_signed_type #undef LANG_HOOKS_UNSIGNED_TYPE #define LANG_HOOKS_UNSIGNED_TYPE java_unsigned_type -#undef LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE -#define LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE java_signed_or_unsigned_type #undef LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN #define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN java_dump_tree diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c index 395168fa706a..b35461b47616 100644 --- a/gcc/java/typeck.c +++ b/gcc/java/typeck.c @@ -195,31 +195,12 @@ java_type_for_size (unsigned bits, int unsignedp) return 0; } -/* Return a type the same as TYPE except unsigned or - signed according to UNSIGNEDP. */ - -tree -java_signed_or_unsigned_type (int unsignedp, tree type) -{ - if (! INTEGRAL_TYPE_P (type)) - return type; - if (TYPE_PRECISION (type) == TYPE_PRECISION (int_type_node)) - return unsignedp ? unsigned_int_type_node : int_type_node; - if (TYPE_PRECISION (type) == TYPE_PRECISION (byte_type_node)) - return unsignedp ? unsigned_byte_type_node : byte_type_node; - if (TYPE_PRECISION (type) == TYPE_PRECISION (short_type_node)) - return unsignedp ? unsigned_short_type_node : short_type_node; - if (TYPE_PRECISION (type) == TYPE_PRECISION (long_type_node)) - return unsignedp ? unsigned_long_type_node : long_type_node; - return type; -} - /* Return a signed type the same as TYPE in other respects. */ tree java_signed_type (tree type) { - return java_signed_or_unsigned_type (0, type); + return get_signed_or_unsigned_type (0, type); } /* Return an unsigned type the same as TYPE in other respects. */ @@ -227,7 +208,7 @@ java_signed_type (tree type) tree java_unsigned_type (tree type) { - return java_signed_or_unsigned_type (1, type); + return get_signed_or_unsigned_type (1, type); } /* Mark EXP saying that we need to be able to take the diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h index 1165d344fefa..572990039a27 100644 --- a/gcc/langhooks-def.h +++ b/gcc/langhooks-def.h @@ -130,6 +130,7 @@ extern void lhd_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, #define LANG_HOOKS_TREE_SIZE lhd_tree_size #define LANG_HOOKS_TYPES_COMPATIBLE_P lhd_types_compatible_p #define LANG_HOOKS_BUILTIN_FUNCTION lhd_builtin_function +#define LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE lhd_signed_or_unsigned_type #define LANG_HOOKS_EXPR_TO_DECL lhd_expr_to_decl #define LANG_HOOKS_TO_TARGET_CHARSET lhd_to_target_charset #define LANG_HOOKS_INIT_TS lhd_do_nothing diff --git a/gcc/langhooks.c b/gcc/langhooks.c index 9a33bcafc9e3..1ba6ec224cf0 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); +} diff --git a/gcc/langhooks.h b/gcc/langhooks.h index db7a35e16a5c..b7116103f85c 100644 --- a/gcc/langhooks.h +++ b/gcc/langhooks.h @@ -461,5 +461,6 @@ extern tree add_builtin_function (const char *name, tree type, int function_code, enum built_in_class cl, const char *library_name, tree attrs); +extern tree lhd_signed_or_unsigned_type (int unsignedp, tree type); #endif /* GCC_LANG_HOOKS_H */ diff --git a/gcc/tree.h b/gcc/tree.h index c3512960be26..64efe7c60fe1 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -3806,6 +3806,8 @@ extern bool tree_expr_nonnegative_warnv_p (tree, bool *); extern bool may_negate_without_overflow_p (tree); extern tree get_inner_array_type (tree); +extern tree get_signed_or_unsigned_type (int unsignedp, tree type); + /* From expmed.c. Since rtl.h is included after tree.h, we can't put the prototype here. Rtl.h does declare the prototype if tree.h had been included. */ diff --git a/gcc/treelang/ChangeLog b/gcc/treelang/ChangeLog index 0f08dd69870c..2903de6d788f 100644 --- a/gcc/treelang/ChangeLog +++ b/gcc/treelang/ChangeLog @@ -1,3 +1,8 @@ +2007-03-30 Rafael Avila de Espindola + + * treetree.c (tree_lang_signed_or_unsigned_type): Remove. + (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE) Remove. + 2007-03-01 Brooks Moses * Make-lang.in: Add install-pdf target as copied from diff --git a/gcc/treelang/treetree.c b/gcc/treelang/treetree.c index aade17c8b954..0645b9d1da55 100644 --- a/gcc/treelang/treetree.c +++ b/gcc/treelang/treetree.c @@ -129,7 +129,6 @@ static tree tree_lang_type_for_size (unsigned precision, int unsignedp); static tree tree_lang_type_for_mode (enum machine_mode mode, int unsignedp); static tree tree_lang_unsigned_type (tree type_node); static tree tree_lang_signed_type (tree type_node); -static tree tree_lang_signed_or_unsigned_type (int unsignedp, tree type); /* Functions to keep track of the current scope. */ static void pushlevel (int ignore); @@ -156,8 +155,6 @@ static void treelang_expand_function (tree fndecl); #define LANG_HOOKS_SIGNED_TYPE tree_lang_signed_type #undef LANG_HOOKS_UNSIGNED_TYPE #define LANG_HOOKS_UNSIGNED_TYPE tree_lang_unsigned_type -#undef LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE -#define LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE tree_lang_signed_or_unsigned_type #undef LANG_HOOKS_TYPE_FOR_MODE #define LANG_HOOKS_TYPE_FOR_MODE tree_lang_type_for_mode #undef LANG_HOOKS_TYPE_FOR_SIZE @@ -884,17 +881,6 @@ tree_lang_signed_type (tree type_node) return tree_lang_type_for_size (TYPE_PRECISION (type_node), 0); } -/* Return a type the same as TYPE except unsigned or signed according to - UNSIGNEDP. */ - -static tree -tree_lang_signed_or_unsigned_type (int unsignedp, tree type) -{ - if (! INTEGRAL_TYPE_P (type) || TYPE_UNSIGNED (type) == unsignedp) - return type; - else - return tree_lang_type_for_size (TYPE_PRECISION (type), unsignedp); -} /* These functions and variables deal with binding contours. We only need these functions for the list of PARM_DECLs, but we leave the -- 2.39.2