From 21ef78aa2e68118fc25d53e17e33388b6083ef12 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Tue, 19 Mar 2002 19:39:03 +0000 Subject: [PATCH] expr.c (expand_expr): Sign-extend CONST_INT generated from TREE_STRING_POINTER. * expr.c (expand_expr): Sign-extend CONST_INT generated from TREE_STRING_POINTER. From-SVN: r51033 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 13 ++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 58f6ea97ea1..e6b3fb0e97c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-03-19 David Edelsohn + + * expr.c (expand_expr): Sign-extend CONST_INT generated from + TREE_STRING_POINTER. + Tue Mar 19 14:12:32 2002 Richard Kenner * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP diff --git a/gcc/expr.c b/gcc/expr.c index f8a045a49fd..fd62a39b9c9 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6631,8 +6631,8 @@ expand_expr (exp, target, tmode, modifier) && GET_MODE_CLASS (mode) == MODE_INT && GET_MODE_SIZE (mode) == 1 && modifier != EXPAND_WRITE) - return - GEN_INT (TREE_STRING_POINTER (string)[TREE_INT_CST_LOW (index)]); + return gen_int_mode (TREE_STRING_POINTER (string) + [TREE_INT_CST_LOW (index)], mode); op0 = expand_expr (exp1, NULL_RTX, VOIDmode, EXPAND_SUM); op0 = memory_address (mode, op0); @@ -6681,8 +6681,8 @@ expand_expr (exp, target, tmode, modifier) && compare_tree_int (index, TREE_STRING_LENGTH (array)) < 0 && GET_MODE_CLASS (mode) == MODE_INT && GET_MODE_SIZE (mode) == 1) - return - GEN_INT (TREE_STRING_POINTER (array)[TREE_INT_CST_LOW (index)]); + return gen_int_mode (TREE_STRING_POINTER (array) + [TREE_INT_CST_LOW (index)], mode); /* If this is a constant index into a constant array, just get the value from the array. Handle both the cases when @@ -6742,9 +6742,8 @@ expand_expr (exp, target, tmode, modifier) if (GET_MODE_CLASS (mode) == MODE_INT && GET_MODE_SIZE (mode) == 1) - return (GEN_INT - (TREE_STRING_POINTER - (init)[TREE_INT_CST_LOW (index)])); + return gen_int_mode (TREE_STRING_POINTER (init) + [TREE_INT_CST_LOW (index)], mode); } } } -- 2.30.2