diff options
author | Marek Polacek <polacek@redhat.com> | 2015-12-07 17:52:23 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2015-12-07 17:52:23 +0000 |
commit | 66189108d3785a463d2d1d0341fa6198582d9fd2 (patch) | |
tree | 2f2cc1a708c2ce1bf995969f8634445e436baab6 /gcc/c | |
parent | 71e546870c4afb3c3ff993bd354a98637bcccdc7 (diff) | |
download | gcc-66189108d3785a463d2d1d0341fa6198582d9fd2.zip gcc-66189108d3785a463d2d1d0341fa6198582d9fd2.tar.gz gcc-66189108d3785a463d2d1d0341fa6198582d9fd2.tar.bz2 |
re PR c/68668 (bogus error: invalid use of array with unspecified bounds)
PR c/68668
* c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.
* gcc.dg/pr68668.c: New test.
From-SVN: r231374
Diffstat (limited to 'gcc/c')
-rw-r--r-- | gcc/c/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c/c-decl.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 468ef93..0b3351c 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2015-12-07 Marek Polacek <polacek@redhat.com> + + PR c/68668 + * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use + TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT. + 2015-12-04 Eric Botcazou <ebotcazou@adacore.com> * c-tree.h (c_build_va_arg): Adjust prototype. diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index 9ad8219..2da84f2 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -6417,6 +6417,13 @@ grokdeclarator (const struct c_declarator *declarator, { /* Transfer const-ness of array into that of type pointed to. */ type = TREE_TYPE (type); + if (orig_qual_type != NULL_TREE) + { + if (orig_qual_indirect == 0) + orig_qual_type = TREE_TYPE (orig_qual_type); + else + orig_qual_indirect--; + } if (type_quals) type = c_build_qualified_type (type, type_quals, orig_qual_type, orig_qual_indirect); |