expr.c (expand_expr): Sign-extend CONST_INT generated from TREE_STRING_POINTER.
authorDavid Edelsohn <edelsohn@gnu.org>
Tue, 19 Mar 2002 19:39:03 +0000 (19:39 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Tue, 19 Mar 2002 19:39:03 +0000 (14:39 -0500)
        * expr.c (expand_expr): Sign-extend CONST_INT generated from
        TREE_STRING_POINTER.

From-SVN: r51033

gcc/ChangeLog
gcc/expr.c

index 58f6ea97ea1b53c62bf40b3a44ca60d558a65926..e6b3fb0e97c609791728c0036b87d12a6b120088 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-19  David Edelsohn  <edelsohn@gnu.org>
+
+       * expr.c (expand_expr): Sign-extend CONST_INT generated from
+       TREE_STRING_POINTER.
+
 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
index f8a045a49fd23e26d97e6b0e0ff018b3a07946c8..fd62a39b9c9ca938a792977b49fea97d6b365857 100644 (file)
@@ -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);
                  }
              }
          }