diff options
author | Richard Biener <rguenther@suse.de> | 2016-05-06 07:44:22 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-05-06 07:44:22 +0000 |
commit | 8706773f5a11cc9f3f48e82e0177d047d275ce1d (patch) | |
tree | 37df3051bfd21e0240474e795612d9af5397f2e6 /gcc | |
parent | a4f510181a4a6ac49317acdda7036f0370517cb9 (diff) | |
download | gcc-8706773f5a11cc9f3f48e82e0177d047d275ce1d.zip gcc-8706773f5a11cc9f3f48e82e0177d047d275ce1d.tar.gz gcc-8706773f5a11cc9f3f48e82e0177d047d275ce1d.tar.bz2 |
re PR fortran/70931 (ICE with -g in native_encode_initializer, bei dwarf2out.c:17768)
2016-05-06 Richard Biener <rguenther@suse.de>
PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
* gfortran.dg/pr70931.f90: New testcase.
From-SVN: r235944
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr70931.f90 | 10 |
4 files changed, 21 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e8f7c8f..3bf441a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2016-05-06 Richard Biener <rguenther@suse.de> + PR middle-end/70931 + * dwarf2out.c (native_encode_initializer): Skip zero-sized fields. + +2016-05-06 Richard Biener <rguenther@suse.de> + PR middle-end/70941 * fold-const.c (split_tree): Always convert to the original type before negating. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index ab851f4..fb3f7b9 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -17806,7 +17806,7 @@ native_encode_initializer (tree init, unsigned char *array, int size) fieldsize = tree_to_shwi (DECL_SIZE_UNIT (field)); pos = int_byte_position (field); gcc_assert (pos + fieldsize <= size); - if (val + if (val && fieldsize != 0 && !native_encode_initializer (val, array + pos, fieldsize)) return false; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d5b2df9..13f7121 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2016-05-06 Richard Biener <rguenther@suse.de> + PR middle-end/70931 + * gfortran.dg/pr70931.f90: New testcase. + +2016-05-06 Richard Biener <rguenther@suse.de> + PR middle-end/70941 * gcc.dg/torture/pr70941.c: New testcase. diff --git a/gcc/testsuite/gfortran.dg/pr70931.f90 b/gcc/testsuite/gfortran.dg/pr70931.f90 new file mode 100644 index 0000000..08ecd68 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr70931.f90 @@ -0,0 +1,10 @@ +! { dg-do compile } +! { dg-options "-g" } +program p + type t + integer :: a + integer :: b(0) + end type + type(t), parameter :: z = t(1, [2]) + print *, z +end |