diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2018-12-24 12:21:25 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2018-12-24 11:21:25 +0000 |
commit | 77e9f49535e298fb326cf0ebc208636d1dcf3f37 (patch) | |
tree | 49e6e270aae37f99742aded9def0bba2205a2e23 /gcc | |
parent | d840d7a2bbbfd97d054baa7462ada09215d93974 (diff) | |
download | gcc-77e9f49535e298fb326cf0ebc208636d1dcf3f37.zip gcc-77e9f49535e298fb326cf0ebc208636d1dcf3f37.tar.gz gcc-77e9f49535e298fb326cf0ebc208636d1dcf3f37.tar.bz2 |
tree.c (fld_simplified_type): Temporarily disable array simplification.
* tree.c (fld_simplified_type): Temporarily disable array
simplification.
* gcc.c-torture/pr88140.c: New testcase.
From-SVN: r267398
Diffstat (limited to 'gcc')
-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; |