File: parameter_array_init_8.f90

package info (click to toggle)
gcc-arm-none-eabi 15%3A12.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 959,712 kB
  • sloc: cpp: 3,275,382; ansic: 2,061,766; ada: 840,956; f90: 208,513; makefile: 76,132; asm: 73,433; xml: 50,448; exp: 34,146; sh: 32,436; objc: 15,637; fortran: 14,012; python: 11,991; pascal: 6,787; awk: 4,779; perl: 3,054; yacc: 338; ml: 285; lex: 201; haskell: 122
file content (25 lines) | stat: -rw-r--r-- 779 bytes parent folder | download | duplicates (2)
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
! { dg-do run }
! PR fortran/99348
! PR fortran/102521
! Check simplifications for initialization of DT parameter arrays

program p
  type t
     integer :: n
  end type
  type(t), parameter :: a(4)   = t(1)
  type(t), parameter :: d(*)   = a
  type(t), parameter :: b(2,2) = reshape(d, [2,2])
  integer, parameter :: nn     = b(2,2)% n
  type u
     character(3) :: c
  end type
  type(u),      parameter :: x(2,3) = u('ab')
  type(u),      parameter :: y(*,*) = transpose (x)
  character(*), parameter :: c      = y(3,2)% c
  integer,      parameter :: lc     = c% len
  integer,      parameter :: lyc    = len (y(3,2)% c)
! integer,      parameter :: lxc    = x(1,1)% c% len    ! fails (pr101735?)
  if (nn /= 1) stop 1
  if (lc /= 3 .or. lyc /= 3 .or. c /= "ab ") stop 2
end