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.
This commit is contained in:
Jason Merrill 2022-04-06 20:04:21 -04:00
parent 80eb8ec672
commit d942178498
2 changed files with 1 additions and 0 deletions

View File

@ -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