diff options
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -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); } } } |