aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-06-07 15:38:10 +0200
committerMartin Liska <mliska@suse.cz>2021-06-07 15:38:10 +0200
commit6467a4e9a6cceae84be71007d11dfc61b47b43a4 (patch)
treefec0feb43d7f9ce092ad6e9a90f598cde22e1fd4 /gcc/fold-const.c
parent7584ede940802ce5f6401bc6122a5550106f5925 (diff)
parent4d3907c222646174ec7e405491435aefc50bf1bb (diff)
downloadgcc-6467a4e9a6cceae84be71007d11dfc61b47b43a4.zip
gcc-6467a4e9a6cceae84be71007d11dfc61b47b43a4.tar.gz
gcc-6467a4e9a6cceae84be71007d11dfc61b47b43a4.tar.bz2
Merge branch 'master' into devel/sphinx
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;