aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 33d64bf..6e5835a 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -15471,6 +15471,9 @@ fold_read_from_vector (tree arg, poly_uint64 idx)
return VECTOR_CST_ELT (arg, i);
else if (TREE_CODE (arg) == CONSTRUCTOR)
{
+ if (CONSTRUCTOR_NELTS (arg)
+ && VECTOR_TYPE_P (TREE_TYPE (CONSTRUCTOR_ELT (arg, 0)->value)))
+ return NULL_TREE;
if (i >= CONSTRUCTOR_NELTS (arg))
return build_zero_cst (TREE_TYPE (TREE_TYPE (arg)));
return CONSTRUCTOR_ELT (arg, i)->value;