1226586Sdim! { dg-do run }
2226586Sdim! { dg-options "-std=gnu -pedantic -ffree-line-length-none" }
3226586Sdim! Test the GNU extension of a L format descriptor without width
4226586Sdim! PR libfortran/21303
5226586Sdimprogram test_l
6226586Sdim  logical(kind=1) :: l1
7226586Sdim  logical(kind=2) :: l2
8226586Sdim  logical(kind=4) :: l4
9226586Sdim  logical(kind=8) :: l8
10226586Sdim
11226586Sdim  character(len=20) :: str
12226586Sdim
13226586Sdim  l1 = .true.
14249423Sdim  write (str,"(L)") l1 ! { dg-warning "Extension: Missing positive width after L descriptor" }
15249423Sdim  read (str,"(L)") l1 ! { dg-warning "Extension: Missing positive width after L descriptor" }
16239462Sdim  if (l1 .neqv. .true.) call abort
17226586Sdim
18226586Sdim  l2 = .true.
19239462Sdim  write (str,"(L)") l2 ! { dg-warning "Extension: Missing positive width after L descriptor" }
20226586Sdim  read (str,"(L)") l2 ! { dg-warning "Extension: Missing positive width after L descriptor" }
21226586Sdim  if (l2 .neqv. .true.) call abort
22226586Sdim
23226586Sdim  l4 = .true.
24234353Sdim  write (str,"(L)") l4 ! { dg-warning "Extension: Missing positive width after L descriptor" }
25226586Sdim  read (str,"(L)") l4 ! { dg-warning "Extension: Missing positive width after L descriptor" }
26239462Sdim  if (l4 .neqv. .true.) call abort
27239462Sdim
28239462Sdim  l8 = .true.
29226586Sdim  write (str,"(L)") l8 ! { dg-warning "Extension: Missing positive width after L descriptor" }
30226586Sdim  read (str,"(L)") l8 ! { dg-warning "Extension: Missing positive width after L descriptor" }
31239462Sdim  if (l8 .neqv. .true.) call abort
32239462Sdim
33276479Sdim  l1 = .false.
34276479Sdim  write (str,"(L)") l1 ! { dg-warning "Extension: Missing positive width after L descriptor" }
35276479Sdim  read (str,"(L)") l1 ! { dg-warning "Extension: Missing positive width after L descriptor" }
36226586Sdim  if (l1 .neqv. .false.) call abort
37226586Sdim
38243830Sdim  l2 = .false.
39243830Sdim  write (str,"(L)") l2 ! { dg-warning "Extension: Missing positive width after L descriptor" }
40226586Sdim  read (str,"(L)") l2 ! { dg-warning "Extension: Missing positive width after L descriptor" }
41226586Sdim  if (l2 .neqv. .false.) call abort
42226586Sdim
43239462Sdim  l4 = .false.
44239462Sdim  write (str,"(L)") l4 ! { dg-warning "Extension: Missing positive width after L descriptor" }
45276479Sdim  read (str,"(L)") l4 ! { dg-warning "Extension: Missing positive width after L descriptor" }
46226586Sdim  if (l4 .neqv. .false.) call abort
47226586Sdim
48226586Sdim  l8 = .false.
49226586Sdim  write (str,"(L)") l8 ! { dg-warning "Extension: Missing positive width after L descriptor" }
50226586Sdim  read (str,"(L)") l8 ! { dg-warning "Extension: Missing positive width after L descriptor" }
51226586Sdim  if (l8 .neqv. .false.) call abort
52239462Sdim
53239462Sdimend program test_l
54239462Sdim! { dg-output "At line 14 of file.*" }
55243830Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
56239462Sdim! { dg-output "At line 15 of file.*" }
57239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
58239462Sdim! { dg-output "At line 19 of file.*" }
59243830Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
60243830Sdim! { dg-output "At line 20 of file.*" }
61239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
62239462Sdim! { dg-output "At line 24 of file.*" }
63239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
64239462Sdim! { dg-output "At line 25 of file.*" }
65239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
66239462Sdim! { dg-output "At line 29 of file.*" }
67243830Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
68243830Sdim! { dg-output "At line 30 of file.*" }
69239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
70239462Sdim! { dg-output "At line 34 of file.*" }
71239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
72239462Sdim! { dg-output "At line 35 of file.*" }
73239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
74226586Sdim! { dg-output "At line 39 of file.*" }
75226586Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
76226586Sdim! { dg-output "At line 40 of file.*" }
77234353Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
78239462Sdim! { dg-output "At line 44 of file.*" }
79239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
80239462Sdim! { dg-output "At line 45 of file.*" }
81239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
82243830Sdim! { dg-output "At line 49 of file.*" }
83243830Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
84239462Sdim! { dg-output "At line 50 of file.*" }
85239462Sdim! { dg-output "Fortran runtime warning: Positive width required in format(\n|\r\n|\r)" }
86243830Sdim