1! { dg-do run } 2! Tests the fix for PR30626, in which the substring reference 3! for an internal file would cause an ICE. 4! 5! Contributed by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 6 7program gfcbug51 8 implicit none 9 10 character(len=12) :: cdate(3) ! yyyymmddhhmm 11 12 type year_t 13 integer :: year = 0 14 end type year_t 15 16 type(year_t) :: time(3) 17 18 cdate = (/'200612231200', '200712231200', & 19 '200812231200'/) 20 21 call date_to_year (cdate) 22 if (any (time%year .ne. (/2006, 2007, 2008/))) STOP 1 23 24 call month_to_date ((/8, 9, 10/), cdate) 25 if ( any (cdate .ne. (/'200608231200', '200709231200', & 26 '200810231200'/))) STOP 2 27 28contains 29 30 subroutine date_to_year (d) 31 character(len=12) :: d(3) 32 read (cdate(:)(1:4),'(i4)') time%year 33 end subroutine 34 35 subroutine month_to_date (m, d) 36 character(len=12) :: d(3) 37 integer :: m(:) 38 write (cdate(:)(5:6),'(i2.2)') m 39 end subroutine month_to_date 40 41end program gfcbug51 42