summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 09a933da5f5..5134b738b05 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -4970,18 +4970,18 @@ make_tree (tree type, rtx x)
{
int units = CONST_VECTOR_NUNITS (x);
tree itype = TREE_TYPE (type);
- tree t = NULL_TREE;
+ tree *elts;
int i;
-
/* Build a tree with vector elements. */
+ elts = XALLOCAVEC (tree, units);
for (i = units - 1; i >= 0; --i)
{
rtx elt = CONST_VECTOR_ELT (x, i);
- t = tree_cons (NULL_TREE, make_tree (itype, elt), t);
+ elts[i] = make_tree (itype, elt);
}
- return build_vector (type, t);
+ return build_vector (type, elts);
}
case PLUS: