diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-11-09 11:01:13 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-11-09 11:01:13 -0500 |
commit | 2ae342f72c43bc0092015de765be3dd164a3ab24 (patch) | |
tree | cd007e11f866d115e3ef48cd3088257a9a935c2d | |
parent | 8aaa43506157312bf0aaacf289c2df801569d71c (diff) | |
download | gcc-2ae342f72c43bc0092015de765be3dd164a3ab24.zip gcc-2ae342f72c43bc0092015de765be3dd164a3ab24.tar.gz gcc-2ae342f72c43bc0092015de765be3dd164a3ab24.tar.bz2 |
(expand_expr, case ARRAY_REF): Properly convert types of index, size,
and multiplication.
From-SVN: r10573
-rw-r--r-- | gcc/expr.c | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -4655,13 +4655,20 @@ expand_expr (exp, target, tmode, modifier) matter, since expand_expr should not care.) */ TREE_SIDE_EFFECTS (array_adr) = 0; - elt = build1 (INDIRECT_REF, type, - fold (build (PLUS_EXPR, - TYPE_POINTER_TO (variant_type), - array_adr, - fold (build (MULT_EXPR, - TYPE_POINTER_TO (variant_type), - index, size))))); + elt + = build1 + (INDIRECT_REF, type, + fold (build (PLUS_EXPR, + TYPE_POINTER_TO (variant_type), + array_adr, + fold + (build1 + (NOP_EXPR, + TYPE_POINTER_TO (variant_type), + fold (build (MULT_EXPR, TREE_TYPE (index), + index, + convert (TREE_TYPE (index), + size))))))));; /* Volatility, etc., of new expression is same as old expression. */ |