re PR fortran/45586 (ICE non-trivial conversion at assignment)
2011-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/45586 * trans-types.c (gfc_get_derived_type): Ensure that pointer component types are marked as nonrestricted. 2011-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/45586 * gfortran.dg/lto/pr45586-2_0.f90: New. From-SVN: r176852
This commit is contained in:
parent
fa8a398ea9
commit
4bfd470b85
|
@ -1,3 +1,9 @@
|
|||
2011-07-27 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/45586
|
||||
* trans-types.c (gfc_get_derived_type): Ensure that pointer
|
||||
component types are marked as nonrestricted.
|
||||
|
||||
2011-07-27 Daniel Carrera <dcarrera@gmail.com>
|
||||
|
||||
PR fortran/49755
|
||||
|
|
|
@ -2421,6 +2421,9 @@ gfc_get_derived_type (gfc_symbol * derived)
|
|||
&& !c->attr.proc_pointer)
|
||||
field_type = build_pointer_type (field_type);
|
||||
|
||||
if (c->attr.pointer)
|
||||
field_type = gfc_nonrestricted_type (field_type);
|
||||
|
||||
/* vtype fields can point to different types to the base type. */
|
||||
if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.vtype)
|
||||
field_type = build_pointer_type_for_mode (TREE_TYPE (field_type),
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-07-27 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/45586
|
||||
* gfortran.dg/lto/pr45586-2_0.f90: New.
|
||||
|
||||
2011-07-27 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
PR middle-end/49875
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
! { dg-lto-do link }
|
||||
!
|
||||
! PR fortran/45586 (comment 53)
|
||||
!
|
||||
|
||||
MODULE M1
|
||||
INTEGER, PARAMETER :: dp=8
|
||||
TYPE realspace_grid_type
|
||||
REAL(KIND=dp), DIMENSION ( :, :, : ), ALLOCATABLE :: r
|
||||
END TYPE realspace_grid_type
|
||||
TYPE realspace_grid_p_type
|
||||
TYPE(realspace_grid_type), POINTER :: rs_grid
|
||||
END TYPE realspace_grid_p_type
|
||||
TYPE realspaces_grid_p_type
|
||||
TYPE(realspace_grid_p_type), DIMENSION(:), POINTER :: rs
|
||||
END TYPE realspaces_grid_p_type
|
||||
END MODULE
|
||||
|
||||
MODULE M2
|
||||
USE M1
|
||||
CONTAINS
|
||||
SUBROUTINE S1()
|
||||
INTEGER :: i,j
|
||||
TYPE(realspaces_grid_p_type), DIMENSION(:), POINTER :: rs_gauge
|
||||
REAL(dp), DIMENSION(:, :, :), POINTER :: y
|
||||
y=>rs_gauge(i)%rs(j)%rs_grid%r
|
||||
END SUBROUTINE
|
||||
END MODULE
|
||||
|
||||
USE M2
|
||||
CALL S1()
|
||||
END
|
||||
|
||||
! { dg-final { cleanup-modules "m1 m2" } }
|
Loading…
Reference in New Issue