Message ID | CADzB+2mmS_udYRc00oZ2WEvwpx0RhOyF+7FKSvjChc0p5Daoig@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | C++ PATCH for c++/84560, ICE capturing multi-dimensional VLA | expand |
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 41d9002d8f9..9b9e36a1173 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1043,6 +1043,8 @@ array_of_runtime_bound_p (tree t) { 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; diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-vla2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-vla2.C new file mode 100644 index 00000000000..d4de131fc23 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-vla2.C @@ -0,0 +1,12 @@ +// 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" } + }(); +}