50 lines
1.8 KiB
Diff
50 lines
1.8 KiB
Diff
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.
|
|
|
|
* gfortran.dg/class_optional_2.f90: Uncomment some cases which work now.
|
|
|
|
--- libgfortran/runtime/in_pack_generic.c (revision 195800)
|
|
+++ libgfortran/runtime/in_pack_generic.c (working copy)
|
|
@@ -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)
|
|
--- gcc/testsuite/gfortran.dg/class_optional_2.f90 (revision 195800)
|
|
+++ gcc/testsuite/gfortran.dg/class_optional_2.f90 (working copy)
|
|
@@ -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
|