diff options
| author | Martin Liska <mliska@suse.cz> | 2021-06-07 15:38:10 +0200 |
|---|---|---|
| committer | Martin Liska <mliska@suse.cz> | 2021-06-07 15:38:10 +0200 |
| commit | 6467a4e9a6cceae84be71007d11dfc61b47b43a4 (patch) | |
| tree | fec0feb43d7f9ce092ad6e9a90f598cde22e1fd4 /gcc/fold-const.c | |
| parent | 7584ede940802ce5f6401bc6122a5550106f5925 (diff) | |
| parent | 4d3907c222646174ec7e405491435aefc50bf1bb (diff) | |
| download | gcc-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.c | 3 |
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; |
