1! { dg-do run }
2! PR15966, PR18781 & PR16531
3implicit none
4complex(kind=8) x(2)
5complex a(2,2)
6character(4) z
7character z1(4)
8character(4) z2(2,2)
9character(80) line
10integer i
11integer j
12real r
13character(8) c
14
15data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
16data a /8H(i3),abc, 0, 4H(i4), 8H    (i9)/
17data z/4h(i5)/
18data z1/1h(,1hi,1h6,1h)/
19data z2/4h(i7),'xxxx','xxxx','xxxx'/
20
21z2 (1,2) = 4h(i8)
22i = 4hHell
23j = 4Ho wo
24r = 4Hrld!
25write (line, '(3A4)') i, j, r
26if (line .ne. 'Hello world!') call abort
27i = 2Hab
28j = 2Hab
29r = 2Hab
30c = 2Hab
31write (line, '(3A4, 8A)') i, j, r, c
32if (line .ne. 'ab  ab  ab  ab      ') call abort
33
34write(line, '(4A8, "!")' ) x
35if (line .ne. 'abcdefghijklmnopqrstuvwxyz012345!') call abort
36
37write (line, a) 3
38if (line .ne. '  3') call abort
39write (line, a (1,2)) 4
40if (line .ne. '   4') call abort
41write (line, z) 5
42if (line .ne. '    5') call abort
43write (line, z1) 6
44if (line .ne. '     6') call abort
45write (line, z2) 7
46if (line .ne. '      7') call abort
47write (line, z2 (1,2)) 8
48if (line .ne. '       8') call abort
49write (line, '(16A)') z2
50if (line .ne. '(i7)xxxx(i8)xxxx') call abort
51call test (8h   hello)
52end
53
54subroutine test (h)
55integer(kind=8) h
56character(80) line
57
58write (line, '(8a)') h
59if (line .ne. '   hello') call abort
60end subroutine
61
62! { dg-warning "Hollerith constant" "const" { target *-*-* } 15 }
63! { dg-warning "Conversion" "conversion" { target *-*-* } 15 }
64
65! { dg-warning "Hollerith constant" "const" { target *-*-* } 16 }
66! { dg-warning "Conversion" "conversion" { target *-*-* } 16 }
67
68! { dg-warning "Hollerith constant" "const" { target *-*-* } 17 }
69
70! { dg-warning "Hollerith constant" "const" { target *-*-* } 18 }
71
72! { dg-warning "Hollerith constant" "const" { target *-*-* } 19 }
73
74! { dg-warning "Hollerith constant" "const" { target *-*-* } 21 }
75! { dg-warning "Conversion" "conversion" { target *-*-* } 21 }
76
77! { dg-warning "Hollerith constant" "const" { target *-*-* } 22 }
78! { dg-warning "Conversion" "conversion" { target *-*-* } 22 }
79
80! { dg-warning "Hollerith constant" "const" { target *-*-* } 23 }
81! { dg-warning "Conversion" "conversion" { target *-*-* } 23 }
82
83! { dg-warning "Hollerith constant" "const" { target *-*-* } 24 }
84! { dg-warning "Conversion" "conversion" { target *-*-* } 24 }
85
86! { dg-warning "Hollerith constant" "const" { target *-*-* } 27 }
87! { dg-warning "Conversion" "conversion" { target *-*-* } 27 }
88
89! { dg-warning "Hollerith constant" "const" { target *-*-* } 28 }
90! { dg-warning "Conversion" "conversion" { target *-*-* } 28 }
91
92! { dg-warning "Hollerith constant" "const" { target *-*-* } 29 }
93! { dg-warning "Conversion" "conversion" { target *-*-* } 29 }
94
95! { dg-warning "Hollerith constant" "const" { target *-*-* } 30 }
96! { dg-warning "Conversion" "conversion" { target *-*-* } 30 }
97
98! { dg-warning "Non-character in FORMAT tag" "" { target *-*-* } 37 }
99
100! { dg-warning "Non-character in FORMAT tag" "" { target *-*-* } 39 }
101
102! { dg-warning "Hollerith constant" "" { target *-*-* } 51 }
103