diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2014-04-16 22:46:47 +0200 |
---|---|---|
committer | Marc Glisse <glisse@gcc.gnu.org> | 2014-04-16 20:46:47 +0000 |
commit | fcde53d03f7c4338c4cf5a27c56606fa64b8c554 (patch) | |
tree | a9a64dd0ecdfe0cffb3307ff9932d21e61c70b20 | |
parent | 73cc28d4e7afd539934e7033d0e6dea6c8265852 (diff) | |
download | gcc-fcde53d03f7c4338c4cf5a27c56606fa64b8c554.zip gcc-fcde53d03f7c4338c4cf5a27c56606fa64b8c554.tar.gz gcc-fcde53d03f7c4338c4cf5a27c56606fa64b8c554.tar.bz2 |
decl.c (reshape_init_r): Handle a single element of vector type.
2014-04-16 Marc Glisse <marc.glisse@inria.fr>
gcc/cp/
* decl.c (reshape_init_r): Handle a single element of vector type.
gcc/testsuite/
* g++.dg/cpp0x/initlist-vect.C: New file.
From-SVN: r209449
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/decl.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/initlist-vect.C | 6 |
4 files changed, 15 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 28c6d96..e10a227 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2014-04-16 Marc Glisse <marc.glisse@inria.fr> + + * decl.c (reshape_init_r): Handle a single element of vector type. + 2014-04-16 Patrick Palka <patrick@parcs.ath.cx> PR c++/60765 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index f80f94a..7ce55c8 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -5407,7 +5407,7 @@ reshape_init_r (tree type, reshape_iter *d, bool first_initializer_p, /* "If T is a class type and the initializer list has a single element of type cv U, where U is T or a class derived from T, the object is initialized from that element." Even if T is an aggregate. */ - if (cxx_dialect >= cxx11 && CLASS_TYPE_P (type) + if (cxx_dialect >= cxx11 && (CLASS_TYPE_P (type) || VECTOR_TYPE_P (type)) && first_initializer_p && d->end - d->cur == 1 && reference_related_p (type, TREE_TYPE (init))) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3c0f63e..10db7a2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-04-16 Marc Glisse <marc.glisse@inria.fr> + + * g++.dg/cpp0x/initlist-vect.C: New file. + 2014-04-16 Eric Botcazou <ebotcazou@adacore.com> * gcc.dg/uninit-B-O0.c: Remove XFAIL. diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-vect.C b/gcc/testsuite/g++.dg/cpp0x/initlist-vect.C new file mode 100644 index 0000000..80a2fbb --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/initlist-vect.C @@ -0,0 +1,6 @@ +// { dg-do compile { target c++11 } } + +typedef float X __attribute__ ((vector_size (4 * sizeof (float)))); + +X x; +X x2{x}; |