From: Donn Terry Date: Thu, 15 Apr 1999 22:52:22 +0000 (+0000) Subject: expr.c (expand_assignment): Force pointers to proper mode if POINTERS_EXTEND_UNSIGNED... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6419e5b06383f259492f5365dc8a907c54cca709;p=gcc.git expr.c (expand_assignment): Force pointers to proper mode if POINTERS_EXTEND_UNSIGNED is defined. * expr.c (expand_assignment): Force pointers to proper mode if POINTERS_EXTEND_UNSIGNED is defined. From-SVN: r26484 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4cbf8661ff3..12932a10825 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -6,6 +6,9 @@ Thu Apr 15 23:17:33 1999 Jerry Quinn Thu Apr 15 20:46:57 1999 Donn Terry (donn@interix.com) + * expr.c (expand_assignment): Force pointers to proper mode if + POINTERS_EXTEND_UNSIGNED is defined. + * xm-alpha.h (alloca.h): Add Interix to list of special machines that don't like alloca.h, pending using autoconf results. diff --git a/gcc/expr.c b/gcc/expr.c index 8d5a5402184..5b6b2a7dab3 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -3393,7 +3393,14 @@ expand_assignment (to, from, want_value, suggest_reg) emit_block_move (to_rtx, value, expr_size (from), TYPE_ALIGN (TREE_TYPE (from)) / BITS_PER_UNIT); else - emit_move_insn (to_rtx, value); + { +#ifdef POINTERS_EXTEND_UNSIGNED + if (TREE_CODE (to) == REFERENCE_TYPE + || TREE_CODE (to) == POINTER_TYPE) + value = convert_memory_address (GET_MODE (to_rtx), value); +#endif + emit_move_insn (to_rtx, value); + } preserve_temp_slots (to_rtx); free_temp_slots (); pop_temp_slots ();