diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2002-04-01 08:46:10 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2002-04-01 08:46:10 +0000 |
commit | ceef8ce4b43a36a75e3c7df8a8696866fc398a56 (patch) | |
tree | a06146fa6279ee4373ef4b809f8c3aedca99fb3f /gcc/expmed.c | |
parent | c7a39ea995852db80b150e9b24c68f56461aff6d (diff) | |
download | gcc-ceef8ce4b43a36a75e3c7df8a8696866fc398a56.zip gcc-ceef8ce4b43a36a75e3c7df8a8696866fc398a56.tar.gz gcc-ceef8ce4b43a36a75e3c7df8a8696866fc398a56.tar.bz2 |
c-common.c (unsigned_conversion_warning, [...]): Use new hooks.
* c-common.c (unsigned_conversion_warning, convert_and_check,
unsigned_type, signed_type, shorten_compare,
c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
* c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
New.
* c-decl.c (grokdeclarator): Update.
* c-format.c (check_format_types): Update.
* c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
* c-typeck.c (build_binary_op, convert_for_assignment): Update.
* convert.c (convert_to_integer): Use new hooks.
* expmed.c (make_tree): Use new hooks.
* expr.c (store_expr): Use new hooks.
* fold-const.c (operand_equal_for_comparison_p, build_range_check,
all_ones_mask_p, unextend, fold): Use new hooks.
* langhooks.h (struct lang_hooks_for_types): New hooks.
* tree.h (signed_or_unsigned_type, signed_type,
unsigned_type): Remove.
ada:
* gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
Rename.
* misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
* trans.c (tree_transform, convert_with_check): Update.
* utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
Rename.
cp:
* cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
* decl.c (grokdeclarator): Update.
* mangle.c (write_integer_cst): Update.
* typeck.c (build_binary_op): Update.
f:
* com.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
java:
* expr.c (build_java_binop): Update.
* java-tree.h (java_signed_type, java_unsigned_type,
java_signed_or_unsigned_type): Update.
* lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
* parse.y (patch_binop): Update.
* typeck.c (signed_or_unsigned_type, unsigned_type,
signed_type): Update.
objc:
* objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
From-SVN: r51684
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c index cdc403f..76b90fa 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -4108,21 +4108,22 @@ make_tree (type, x) make_tree (type, XEXP (x, 1)))); case LSHIFTRT: + t = (*lang_hooks.types.unsigned_type) (type); return fold (convert (type, - build (RSHIFT_EXPR, unsigned_type (type), - make_tree (unsigned_type (type), - XEXP (x, 0)), + build (RSHIFT_EXPR, t, + make_tree (t, XEXP (x, 0)), make_tree (type, XEXP (x, 1))))); case ASHIFTRT: + t = (*lang_hooks.types.signed_type) (type); return fold (convert (type, - build (RSHIFT_EXPR, signed_type (type), - make_tree (signed_type (type), XEXP (x, 0)), + build (RSHIFT_EXPR, t, + make_tree (t, XEXP (x, 0)), make_tree (type, XEXP (x, 1))))); case DIV: if (TREE_CODE (type) != REAL_TYPE) - t = signed_type (type); + t = (*lang_hooks.types.signed_type) (type); else t = type; @@ -4131,7 +4132,7 @@ make_tree (type, x) make_tree (t, XEXP (x, 0)), make_tree (t, XEXP (x, 1))))); case UDIV: - t = unsigned_type (type); + t = (*lang_hooks.types.unsigned_type) (type); return fold (convert (type, build (TRUNC_DIV_EXPR, t, make_tree (t, XEXP (x, 0)), |