diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/pr88140.c | 19 | ||||
-rw-r--r-- | gcc/tree.c | 3 |
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 77631ac..dce70c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 933b716..6cd73cc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 index 0000000..a08c2cb --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/pr88140.c @@ -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; } + + @@ -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; |