summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90
blob: 952285063456b846d8090939c5e7946db38aab89 (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
! ICE with gfortran 4.5 at -O1:
!gfcbug98.f90: In function ‘convert_cof’:
!gfcbug98.f90:36:0: internal compiler error: in pt_solutions_same_restrict_base,
!at tree-ssa-structalias.c:5072
module foo
  implicit none
  type t_time
     integer :: secs = 0
  end type t_time
contains
  elemental function time_cyyyymmddhh (cyyyymmddhh) result (time)
    type (t_time)                :: time
    character(len=10),intent(in) :: cyyyymmddhh
  end function time_cyyyymmddhh

  function nf90_open(path, mode, ncid)
    character(len = *), intent(in) :: path
    integer, intent(in)  :: mode
    integer, intent(out) :: ncid
    integer              :: nf90_open
  end function nf90_open
end module foo
!==============================================================================
module gfcbug98
  use foo
  implicit none

  type t_fileinfo
     character(len=10) :: atime = ' '
  end type t_fileinfo

  type t_body
     real         :: bg(10)
  end type t_body
contains
  subroutine convert_cof (ifile)
    character(len=*) ,intent(in) :: ifile

    character(len=5)         :: version
    type(t_fileinfo)         :: gattr
    type(t_time)             :: atime
    type(t_body),allocatable :: tmp_dat(:)
    real        ,allocatable :: BDA(:, :, :)

    call open_input
    call convert_data
  contains
    subroutine open_input
      integer             :: i,j
      version = ''
      j = nf90_open(ifile, 1, i)
    end subroutine open_input
    !--------------------------------------------------------------------------
    subroutine convert_data
      BDA(1,:,1) = tmp_dat(1)% bg(:)
      atime = time_cyyyymmddhh (gattr% atime)
    end subroutine convert_data
  end subroutine convert_cof
end module gfcbug98