]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that...
authorJakub Jelinek <jakub@redhat.com>
Tue, 30 May 2017 07:09:01 +0000 (09:09 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 30 May 2017 07:09:01 +0000 (09:09 +0200)
Backported from mainline
2016-08-11  Jakub Jelinek  <jakub@redhat.com>

PR c/72816
* c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
array member through typedef, for orig_qual_indirect == 0 clear
orig_qual_type.

2016-08-11  Jakub Jelinek  <jakub@redhat.com>

PR c/72816
* gcc.dg/pr72816.c: Remove dg-error.

2016-08-07  Jakub Jelinek  <jakub@redhat.com>

PR c/72816
* gcc.dg/pr72816.c: New test.

From-SVN: r248594

gcc/c/ChangeLog
gcc/c/c-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr72816.c [new file with mode: 0644]

index 85f9e9a0f5b39ea86b5ebb670ce3aba8c1d66e28..ca0fd0dc4b8f3b06839a19b81921b8d1993a2f39 100644 (file)
@@ -1,3 +1,13 @@
+2017-05-30  Jakub Jelinek  <jakub@redhat.com>
+
+       Backported from mainline
+       2016-08-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/72816
+       * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
+       array member through typedef, for orig_qual_indirect == 0 clear
+       orig_qual_type.
+
 2016-11-05  Martin Sebor  <msebor@redhat.com>
 
        Backport from trunk.
index d1e74443f0eeea2bb3c39402abb0c1c9e160cc87..0737c400e2ea379a35619eb715dd7f6e6290ebaf 100644 (file)
@@ -6572,6 +6572,8 @@ grokdeclarator (const struct c_declarator *declarator,
            type = build_distinct_type_copy (TYPE_MAIN_VARIANT (type));
            TYPE_DOMAIN (type) = build_range_type (sizetype, size_zero_node,
                                                   NULL_TREE);
+           if (orig_qual_indirect == 0)
+             orig_qual_type = NULL_TREE;
          }
        type = c_build_qualified_type (type, type_quals, orig_qual_type,
                                       orig_qual_indirect);
index 317787d928d0fa168058e13c52dca555378fc702..c416f40649923ebe355b3200b6e0f8df1ffa743e 100644 (file)
@@ -1,11 +1,21 @@
 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2016-08-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/72816
+       * gcc.dg/pr72816.c: Remove dg-error.
+
        2016-08-09  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/72824
        * gcc.c-torture/execute/ieee/pr72824.c: New test.
 
+       2016-08-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/72816
+       * gcc.dg/pr72816.c: New test.
+
 2017-05-29  Martin Liska  <mliska@suse.cz>
 
        Backport from mainline
diff --git a/gcc/testsuite/gcc.dg/pr72816.c b/gcc/testsuite/gcc.dg/pr72816.c
new file mode 100644 (file)
index 0000000..b1498c7
--- /dev/null
@@ -0,0 +1,9 @@
+/* PR c/72816 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu11" } */
+
+typedef const int A[];
+struct S {
+  int a;
+  A b;
+};