[gcc r12-8034] c++: vector compound literal [PR105187]
Jason Merrill
jason@gcc.gnu.org
Thu Apr 7 01:27:42 GMT 2022
https://gcc.gnu.org/g:d9421784980276b42ecdce85b6dde28e965c88c6
commit r12-8034-gd9421784980276b42ecdce85b6dde28e965c88c6
Author: Jason Merrill <jason@redhat.com>
Date: Wed Apr 6 20:04:21 2022 -0400
c++: vector compound literal [PR105187]
My cleanup in r12-296 cleared TREE_HAS_CONSTRUCTOR on digested class
initializers, but we leave it set for vectors, since we can't wrap them in
TARGET_EXPR.
PR c++/105187
gcc/cp/ChangeLog:
* typeck2.cc (store_init_value): Allow TREE_HAS_CONSTRUCTOR for
vectors.
gcc/testsuite/ChangeLog:
* gcc.c-torture/compile/20050113-1.c: Moved to...
* c-c++-common/torture/20050113-1.c: ...here.
Diff:
---
gcc/cp/typeck2.cc | 1 +
.../{gcc.c-torture/compile => c-c++-common/torture}/20050113-1.c | 0
2 files changed, 1 insertion(+)
diff --git a/gcc/cp/typeck2.cc b/gcc/cp/typeck2.cc
index cebe6acf487..23ed81ec063 100644
--- a/gcc/cp/typeck2.cc
+++ b/gcc/cp/typeck2.cc
@@ -922,6 +922,7 @@ store_init_value (tree decl, tree init, vec<tree, va_gc>** cleanups, int flags)
here it should have been digested into an actual value for the type. */
gcc_checking_assert (TREE_CODE (value) != CONSTRUCTOR
|| processing_template_decl
+ || TREE_CODE (type) == VECTOR_TYPE
|| !TREE_HAS_CONSTRUCTOR (value));
/* If the initializer is not a constant, fill in DECL_INITIAL with
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050113-1.c b/gcc/testsuite/c-c++-common/torture/20050113-1.c
similarity index 100%
rename from gcc/testsuite/gcc.c-torture/compile/20050113-1.c
rename to gcc/testsuite/c-c++-common/torture/20050113-1.c
More information about the Gcc-cvs
mailing list