summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture/execute/iolength_2.f90
blob: ac65778639e2835242fb11f3e2f2b19484a225ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
! Test that IOLENGTH works for derived types containing arrays
module iolength_2_mod
  integer, parameter ::  &
       ! 32 bit, i.e. 4 byte integer (every gcc architecture should have this?)
       int32 = selected_int_kind(9), &
       ! IEEE double precision, i.e. 8 bytes
       dp = selected_real_kind(15, 307)
  type foo
     ! This type should take up 5*4+4+8=32 bytes
     integer(int32) :: a(5), b
     real(dp) :: c
  end type foo
end module iolength_2_mod

program iolength_2
  use iolength_2_mod
  implicit none
  integer :: iol
  type(foo) :: d
  inquire (iolength = iol) d
  if ( 32 /= iol) then
     call abort
  end if
end program iolength_2