Commit e429bc35 by Jason Merrill Committed by Jason Merrill

re PR c++/60251 ([c++11] ICE capturing variable-length array)

	PR c++/60251
	* lambda.c (is_normal_capture_proxy): Handle VLA capture.

From-SVN: r207995
parent a866509a
2014-02-21 Jason Merrill <jason@redhat.com> 2014-02-21 Jason Merrill <jason@redhat.com>
PR c++/60251
* lambda.c (is_normal_capture_proxy): Handle VLA capture.
PR c++/60167 PR c++/60167
PR c++/60222 PR c++/60222
PR c++/58606 PR c++/58606
......
...@@ -250,6 +250,10 @@ is_normal_capture_proxy (tree decl) ...@@ -250,6 +250,10 @@ is_normal_capture_proxy (tree decl)
/* It's not a capture proxy. */ /* It's not a capture proxy. */
return false; return false;
if (variably_modified_type_p (TREE_TYPE (decl), NULL_TREE))
/* VLA capture. */
return true;
/* It is a capture proxy, is it a normal capture? */ /* It is a capture proxy, is it a normal capture? */
tree val = DECL_VALUE_EXPR (decl); tree val = DECL_VALUE_EXPR (decl);
if (val == error_mark_node) if (val == error_mark_node)
......
// PR c++/60251
// { dg-options "-std=c++1y -pedantic-errors" }
void foo(int n)
{
int x[n];
[&x]() { decltype(x) y; }; // { dg-error "decltype of array of runtime bound" }
}
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