diff options
author | Richard Henderson <rth@redhat.com> | 2005-01-11 00:37:00 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-01-11 00:37:00 -0800 |
commit | 201dd46b9827597fdc60534fd9de31f36f998be3 (patch) | |
tree | 026fb0157df09611a19dccbb67c7d5495c7b283f /gcc | |
parent | 35c0104b03b990b8fb2db82dfcf732ae3aad753d (diff) | |
download | gcc-201dd46b9827597fdc60534fd9de31f36f998be3.zip gcc-201dd46b9827597fdc60534fd9de31f36f998be3.tar.gz gcc-201dd46b9827597fdc60534fd9de31f36f998be3.tar.bz2 |
expr.c (store_constructor): Use rtvec_alloc instead of alloca+gen_rtvec_v...
* expr.c (store_constructor): Use rtvec_alloc instead of
alloca+gen_rtvec_v, and an incorrect number passed to alloca.
From-SVN: r93177
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dbc0995..a9d0155 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-01-11 Richard Henderson <rth@redhat.com> + + * expr.c (store_constructor): Use rtvec_alloc instead of + alloca+gen_rtvec_v, and an incorrect number passed to alloca. + 2005-01-11 Kazu Hirata <kazu@cs.umass.edu> * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos. @@ -4970,7 +4970,7 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size) enum machine_mode eltmode = TYPE_MODE (elttype); HOST_WIDE_INT bitsize; HOST_WIDE_INT bitpos; - rtx *vector = NULL; + rtvec vector = NULL; unsigned n_elts; gcc_assert (eltmode != BLKmode); @@ -4985,9 +4985,9 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size) { unsigned int i; - vector = alloca (n_elts); + vector = rtvec_alloc (n_elts); for (i = 0; i < n_elts; i++) - vector [i] = CONST0_RTX (GET_MODE_INNER (mode)); + RTVEC_ELT (vector, i) = CONST0_RTX (GET_MODE_INNER (mode)); } } @@ -5058,7 +5058,8 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size) /* Vector CONSTRUCTORs should only be built from smaller vectors in the case of BLKmode vectors. */ gcc_assert (TREE_CODE (TREE_TYPE (value)) != VECTOR_TYPE); - vector[eltpos] = expand_expr (value, NULL_RTX, VOIDmode, 0); + RTVEC_ELT (vector, eltpos) + = expand_expr (value, NULL_RTX, VOIDmode, 0); } else { @@ -5076,8 +5077,7 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size) if (vector) emit_insn (GEN_FCN (icode) (target, - gen_rtx_PARALLEL (GET_MODE (target), - gen_rtvec_v (n_elts, vector)))); + gen_rtx_PARALLEL (GET_MODE (target), vector))); break; } |