Commit 1b87c991 by Jason Merrill Committed by Jason Merrill

re PR c++/58639 (ICE on self-referential struct member)

	PR c++/58639
	* call.c (build_aggr_conv): Reject value-initialization of reference.

From-SVN: r207166
parent 11074000
2014-01-27 Jason Merrill <jason@redhat.com> 2014-01-27 Jason Merrill <jason@redhat.com>
PR c++/58639
* call.c (build_aggr_conv): Reject value-initialization of reference.
PR c++/58812 PR c++/58812
PR c++/58651 PR c++/58651
* call.c (convert_like_real): Give helpful error about excess braces * call.c (convert_like_real): Give helpful error about excess braces
......
...@@ -894,6 +894,9 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) ...@@ -894,6 +894,9 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain)
if (i < CONSTRUCTOR_NELTS (ctor)) if (i < CONSTRUCTOR_NELTS (ctor))
val = CONSTRUCTOR_ELT (ctor, i)->value; val = CONSTRUCTOR_ELT (ctor, i)->value;
else if (TREE_CODE (ftype) == REFERENCE_TYPE)
/* Value-initialization of reference is ill-formed. */
return NULL;
else else
{ {
if (empty_ctor == NULL_TREE) if (empty_ctor == NULL_TREE)
......
// PR c++/58639
// { dg-require-effective-target c++11 }
struct node {
node &parent;
};
struct vector {
node n;
};
vector v({}); // { dg-error "" }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment