2 ! { dg-additional-options "-fdump-tree-original" }
3 ! PR fortran/100950 - ICE in output_constructor_regular_field, at varasm.c:5514
6 character(8), parameter :: u
= "123"
7 character(8) :: x
= "", s
8 character(2) :: w(2) = [character(len(x(3:4))) :: 'a','b' ]
9 character(*), parameter :: y(*) = [character(len(u(3:4))) :: 'a','b' ]
10 character(*), parameter :: z(*) = [character(len(x(3:4))) :: 'a','b' ]
11 character(*), parameter :: t(*) = [character(len(x( :2))) :: 'a','b' ]
12 character(*), parameter :: v(*) = [character(len(x(7: ))) :: 'a','b' ]
15 character(len
=8) :: t(4)
16 character(len
=8), pointer :: u(:)
17 character(len
=:), allocatable
:: str
18 character(len
=:), allocatable
:: str2(:)
21 integer, parameter :: lq
= len (q
%s(3:4)), lr
= len (r
%s(3:4))
22 integer, parameter :: l1
= len (q
%t(1)(3:4))
23 integer, parameter :: l2
= len (q
%t(:)(3:4))
24 integer, parameter :: l3
= len (q
%str (3:4))
25 integer, parameter :: l4
= len (r(:)%t(1)(3:4))
26 integer, parameter :: l5
= len (r(1)%t(:)(3:4))
27 integer, parameter :: l6
= len (r(1)%str (3:4))
28 integer, parameter :: l7
= len (r(1)%str2(1)(3:4))
29 integer, parameter :: l8
= len (r(1)%str2(:)(3:4))
31 if (len (y
) /= 2) stop 1
32 if (len (z
) /= 2) stop 2
33 if (any (w
/= y
)) stop 3
34 if (len ([character(len(u(3:4))) :: 'a','b' ]) /= 2) stop 4
35 if (len ([character(len(x(3:4))) :: 'a','b' ]) /= 2) stop 5
36 if (any ([character(len(x(3:4))) :: 'a','b' ] /= y
)) stop 6
37 write(s
,*) [character(len(x(3:4))) :: 'a','b' ]
38 if (s
/= " a b ") stop 7
39 if (len (t
) /= 2) stop 8
40 if (len (v
) /= 2) stop 9
41 if (lq
/= 2 .or
. lr
/= 2) stop 10
42 if (l1
/= 2 .or
. l2
/= 2 .or
. l4
/= 2 .or
. l5
/= 2) stop 11
43 if (l3
/= 2 .or
. l6
/= 2 .or
. l7
/= 2 .or
. l8
/= 2) stop 12
46 integer, parameter :: l9
= len (r(1)%u(:)(3:4))
50 call sub (42, "abcde")
53 integer, intent(in
) :: m
54 character(len
=*), intent(in
) :: c
55 character(len
=m
) :: p
, o(3)
56 integer, parameter :: l10
= len (p(6:7))
57 integer, parameter :: l11
= len (o(:)(6:7))
58 integer, parameter :: l12
= len (c(2:3))
59 if (l10
/= 2 .or
. l11
/= 2 .or
. l12
/= 2) stop 14
63 ! { dg-final { scan-tree-dump-times "_gfortran_stop_numeric" 2 "original" } }
64 ! { dg-final { scan-tree-dump "_gfortran_stop_numeric \\(3, 0\\);" "original" } }
65 ! { dg-final { scan-tree-dump "_gfortran_stop_numeric \\(7, 0\\);" "original" } }