re PR fortran/55978 (class_optional_2.f90 -Os fails)

2013-02-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55978
	* runtime/in_pack_generic.c (internal_pack): Return if base_addr is
	NULL.

2013-02-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/55978
	* gfortran.dg/class_optional_2.f90: Uncomment some cases which work now.

From-SVN: r195814
This commit is contained in:
Janus Weil 2013-02-06 20:39:35 +01:00
parent 8f093ea0b1
commit c362c6741d
4 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2013-02-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/55978
* gfortran.dg/class_optional_2.f90: Uncomment some cases which work now.
2013-02-06 Jakub Jelinek <jakub@redhat.com>
PR middle-end/56217

View File

@ -3,7 +3,7 @@
!
! PR fortran/50981
! PR fortran/54618
!
! PR fortran/55978
implicit none
type t
@ -547,7 +547,7 @@ contains
! call s2elem(z5) ! FIXME: Segfault
! call s2elem_t(x) ! FIXME: Conditional jump or move depends on uninitialised value
! call s2elem_t(y) ! FIXME: Conditional jump or move depends on uninitialised value
! call s2elem_t(z) ! FIXME: Conditional jump or move depends on uninitialised value
call s2elem_t(z)
! call s2elem_t(z2) ! FIXME: Segfault
! call s2elem_t(z3) ! FIXME: Segfault
! call s2elem_t(z4) ! FIXME: Segfault
@ -590,7 +590,7 @@ contains
! call s2elem(z5) ! FIXME: Segfault
! call s2elem_t2(x) ! FIXME: Conditional jump or move depends on uninitialised value
! call s2elem_t2(y) ! FIXME: Conditional jump or move depends on uninitialised value
! call s2elem_t2(z) ! FIXME: Conditional jump or move depends on uninitialised value
call s2elem_t2(z)
! call s2elem_t2(z2) ! FIXME: Segfault
! call s2elem_t2(z3) ! FIXME: Segfault
! call s2elem_t2(z4) ! FIXME: Segfault

View File

@ -1,3 +1,9 @@
2013-02-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/55978
* runtime/in_pack_generic.c (internal_pack): Return if base_addr is
NULL.
2013-01-23 Janne Blomqvist <jb@gcc.gnu.org>
* io/file_pos.c (unformatted_backspace): Use __builtin_bswapXX

View File

@ -48,6 +48,9 @@ internal_pack (gfc_array_char * source)
index_type size;
index_type type_size;
if (source->base_addr == NULL)
return NULL;
type_size = GFC_DTYPE_TYPE_SIZE(source);
size = GFC_DESCRIPTOR_SIZE (source);
switch (type_size)