tree.c (fld_simplified_type): Temporarily disable array simplification.
authorJan Hubicka <hubicka@ucw.cz>
Mon, 24 Dec 2018 11:21:25 +0000 (12:21 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 24 Dec 2018 11:21:25 +0000 (11:21 +0000)
* tree.c (fld_simplified_type): Temporarily disable array
simplification.

* gcc.c-torture/pr88140.c: New testcase.

From-SVN: r267398

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/pr88140.c [new file with mode: 0644]
gcc/tree.c

index 77631ac..dce70c8 100644 (file)
@@ -1,4 +1,10 @@
 2018-12-24  Jan Hubicka  <hubicka@ucw.cz>
+       
+       PR lto/88140
+       * tree.c (fld_simplified_type): Temporarily disable array
+       simplification.
+
+2018-12-24  Jan Hubicka  <hubicka@ucw.cz>
 
        * lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations
        for method whose basetype was already reported.
index 933b716..6cd73cc 100644 (file)
@@ -1,3 +1,8 @@
+2018-12-24  Jan Hubicka  <hubicka@ucw.cz>
+       
+       PR lto/88140
+       * gcc.c-torture/pr88140.c: New testcase.
+
 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
 
        PR testsuite/67974
diff --git a/gcc/testsuite/gcc.c-torture/pr88140.c b/gcc/testsuite/gcc.c-torture/pr88140.c
new file mode 100644 (file)
index 0000000..a08c2cb
--- /dev/null
@@ -0,0 +1,19 @@
+typedef struct {
+} a;
+
+typedef struct {
+  a *b[0];
+} c;
+
+void d() { ((c *)0)->b[0] = 0; }
+
+typedef struct {
+} a;
+
+typedef struct {
+  a *b[0];
+} c;
+
+void d() { ((c *)0)->b[0] = 0; }
+
+
index c3d4bb8..5fd3be1 100644 (file)
@@ -5372,7 +5372,8 @@ fld_simplified_type (tree t, struct free_lang_data_d *fld)
     return t;
   if (POINTER_TYPE_P (t))
     return fld_incomplete_type_of (t, fld);
-  if (TREE_CODE (t) == ARRAY_TYPE)
+  /* FIXME: This triggers verification error, see PR88140.  */
+  if (TREE_CODE (t) == ARRAY_TYPE && 0)
     return fld_process_array_type (t, fld_simplified_type (TREE_TYPE (t), fld),
                                   fld_simplified_types, fld);
   return t;