aboutsummaryrefslogtreecommitdiff
path: root/gcc/attribs.c
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2020-10-14 15:18:19 -0600
committerMartin Sebor <msebor@redhat.com>2020-10-14 15:18:19 -0600
commit34efa5c2a84a8c7c7beb855dec24a321eebcbd6b (patch)
treeb89ec4413e427a639d87da436bb0efa97626a70d /gcc/attribs.c
parent30d06b7d30792bc621202af2099c21fc24157856 (diff)
downloadgcc-34efa5c2a84a8c7c7beb855dec24a321eebcbd6b.zip
gcc-34efa5c2a84a8c7c7beb855dec24a321eebcbd6b.tar.gz
gcc-34efa5c2a84a8c7c7beb855dec24a321eebcbd6b.tar.bz2
PR c/97413 - bogus error on function declaration with many VLA arguments
gcc/ChangeLog: PR c/97413 * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer. gcc/c-family/ChangeLog: PR c/97413 * c-attribs.c (build_attr_access_from_parms): Wrap chain of VLA bounds in an extra list. gcc/testsuite/ChangeLog: PR c/97413 * gcc.dg/Wvla-parameter-8.c: New test.
Diffstat (limited to 'gcc/attribs.c')
-rw-r--r--gcc/attribs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/attribs.c b/gcc/attribs.c
index 94b9e02..3bdb2ff 100644
--- a/gcc/attribs.c
+++ b/gcc/attribs.c
@@ -2049,6 +2049,8 @@ init_attr_rdwr_indices (rdwr_map *rwm, tree attrs)
/* The (optional) list of VLA bounds. */
tree vblist = TREE_CHAIN (mode);
+ if (vblist)
+ vblist = TREE_VALUE (vblist);
mode = TREE_VALUE (mode);
if (TREE_CODE (mode) != STRING_CST)