diff options
author | Jason Merrill <jason@redhat.com> | 2014-02-21 09:56:46 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-02-21 09:56:46 -0500 |
commit | cd3ef6f762a6dc3d7871f33b297be5b684b68ad0 (patch) | |
tree | 237d5ccddfbe56cd547e12622239b9c1fd5fecf4 /gcc | |
parent | 1ea32974525999aa5b4a4550a74bef7849d9e9e1 (diff) | |
download | gcc-cd3ef6f762a6dc3d7871f33b297be5b684b68ad0.zip gcc-cd3ef6f762a6dc3d7871f33b297be5b684b68ad0.tar.gz gcc-cd3ef6f762a6dc3d7871f33b297be5b684b68ad0.tar.bz2 |
re PR c++/60277 (Bogus "inline function virtual ..." used but never defined)
PR c++/60277
* call.c (build_array_conv): Don't crash on VLA.
From-SVN: r208001
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/call.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/vla13.C | 8 |
3 files changed, 13 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0dff516..61f5859 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2014-02-21 Jason Merrill <jason@redhat.com> + PR c++/60277 + * call.c (build_array_conv): Don't crash on VLA. + PR c++/60248 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index d4e8a28..d3db585 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -948,7 +948,8 @@ build_array_conv (tree type, tree ctor, int flags, tsubst_flags_t complain) bool user = false; enum conversion_rank rank = cr_exact; - if (TYPE_DOMAIN (type)) + if (TYPE_DOMAIN (type) + && !variably_modified_type_p (TYPE_DOMAIN (type), NULL_TREE)) { unsigned HOST_WIDE_INT alen = tree_to_uhwi (array_type_nelts_top (type)); if (alen < len) diff --git a/gcc/testsuite/g++.dg/cpp1y/vla13.C b/gcc/testsuite/g++.dg/cpp1y/vla13.C new file mode 100644 index 0000000..71b5452 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/vla13.C @@ -0,0 +1,8 @@ +// PR c++/60277 +// { dg-options "-std=c++1y -pedantic-errors" } + +void foo(int n) +{ + int a[n]; + int (&r)[n] = {}; // { dg-error "" } +} |