* tree.c (array_of_runtime_bound_p): False if the element is
variably-modified.
From-SVN: r258023
2018-02-26 Jason Merrill <jason@redhat.com>
+ PR c++/84560 - ICE capturing multi-dimensional VLA.
+ * tree.c (array_of_runtime_bound_p): False if the element is
+ variably-modified.
+
PR c++/84441 - ICE with base initialized from ?:
* call.c (unsafe_copy_elision_p): Handle COND_EXPR.
{
if (!t || TREE_CODE (t) != ARRAY_TYPE)
return false;
+ if (variably_modified_type_p (TREE_TYPE (t), NULL_TREE))
+ return false;
tree dom = TYPE_DOMAIN (t);
if (!dom)
return false;
--- /dev/null
+// PR c++/84560
+// { dg-do compile { target c++11 } }
+// { dg-options "" }
+
+void f() {
+ int n = 1;
+ int m = 1;
+ int d[n][m];
+ [&]() {
+ return d[1]; // { dg-error "variabl" }
+ }();
+}