summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-11 01:47:18 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-11 01:47:18 +0000
commitaae57ecf2ab04bac670933e791448321d7d902c9 (patch)
tree44698d4692f54c1fccaf5bfd54844b6aeb857b34 /gcc/expmed.c
parentba2f9c26a4a86bbd9a95071ccedd16eeb3822f45 (diff)
downloadgcc-aae57ecf2ab04bac670933e791448321d7d902c9.tar.gz
* tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
when attempting to build INTEGER_CSTs of non-integral types. * expmed.c (make_tree): Use the correct type, i.e. the inner type, when constructing the individual elements of a CONST_VECTOR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118678 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 0f3a14df509..b044780d71c 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -4976,17 +4976,17 @@ make_tree (tree type, rtx x)
case CONST_VECTOR:
{
- int i, units;
- rtx elt;
+ int units = CONST_VECTOR_NUNITS (x);
+ tree itype = TREE_TYPE (type);
tree t = NULL_TREE;
+ int i;
- units = CONST_VECTOR_NUNITS (x);
/* Build a tree with vector elements. */
for (i = units - 1; i >= 0; --i)
{
- elt = CONST_VECTOR_ELT (x, i);
- t = tree_cons (NULL_TREE, make_tree (type, elt), t);
+ rtx elt = CONST_VECTOR_ELT (x, i);
+ t = tree_cons (NULL_TREE, make_tree (itype, elt), t);
}
return build_vector (type, t);