1! { dg-do compile }
2! { dg-options "-fmax-errors=1000" }
3
4  character(kind=1,len=20) :: s1, t1
5  character(kind=4,len=20) :: s4, t4
6
7  print *, "" // ""
8  print *, "" // 4_"" ! { dg-error "Operands of string concatenation operator" }
9  print *, 4_"" // "" ! { dg-error "Operands of string concatenation operator" }
10  print *, 4_"" // 4_""
11
12  print *, s1 // ""
13  print *, s1 // 4_"" ! { dg-error "Operands of string concatenation operator" }
14  print *, s4 // "" ! { dg-error "Operands of string concatenation operator" }
15  print *, s4 // 4_""
16
17  print *, "" // s1
18  print *, 4_"" // s1 ! { dg-error "Operands of string concatenation operator" }
19  print *, "" // s4 ! { dg-error "Operands of string concatenation operator" }
20  print *, 4_"" // s4
21
22  print *, s1 // t1
23  print *, s1 // t4 ! { dg-error "Operands of string concatenation operator" }
24  print *, s4 // t1 ! { dg-error "Operands of string concatenation operator" }
25  print *, s4 // t4
26
27  print *, s1 .eq. ""
28  print *, s1 .eq. 4_"" ! { dg-error "Operands of comparison operator" }
29  print *, s4 .eq. "" ! { dg-error "Operands of comparison operator" }
30  print *, s4 .eq. 4_""
31
32  print *, s1 == ""
33  print *, s1 == 4_"" ! { dg-error "Operands of comparison operator" }
34  print *, s4 == "" ! { dg-error "Operands of comparison operator" }
35  print *, s4 == 4_""
36
37  print *, s1 .ne. ""
38  print *, s1 .ne. 4_"" ! { dg-error "Operands of comparison operator" }
39  print *, s4 .ne. "" ! { dg-error "Operands of comparison operator" }
40  print *, s4 .ne. 4_""
41
42  print *, s1 /= ""
43  print *, s1 /= 4_"" ! { dg-error "Operands of comparison operator" }
44  print *, s4 /= "" ! { dg-error "Operands of comparison operator" }
45  print *, s4 /= 4_""
46
47  print *, s1 .le. ""
48  print *, s1 .le. 4_"" ! { dg-error "Operands of comparison operator" }
49  print *, s4 .le. "" ! { dg-error "Operands of comparison operator" }
50  print *, s4 .le. 4_""
51
52  print *, s1 <= ""
53  print *, s1 <= 4_"" ! { dg-error "Operands of comparison operator" }
54  print *, s4 <= "" ! { dg-error "Operands of comparison operator" }
55  print *, s4 <= 4_""
56
57  print *, s1 .ge. ""
58  print *, s1 .ge. 4_"" ! { dg-error "Operands of comparison operator" }
59  print *, s4 .ge. "" ! { dg-error "Operands of comparison operator" }
60  print *, s4 .ge. 4_""
61
62  print *, s1 >= ""
63  print *, s1 >= 4_"" ! { dg-error "Operands of comparison operator" }
64  print *, s4 >= "" ! { dg-error "Operands of comparison operator" }
65  print *, s4 >= 4_""
66
67  print *, s1 .lt. ""
68  print *, s1 .lt. 4_"" ! { dg-error "Operands of comparison operator" }
69  print *, s4 .lt. "" ! { dg-error "Operands of comparison operator" }
70  print *, s4 .lt. 4_""
71
72  print *, s1 < ""
73  print *, s1 < 4_"" ! { dg-error "Operands of comparison operator" }
74  print *, s4 < "" ! { dg-error "Operands of comparison operator" }
75  print *, s4 < 4_""
76
77  print *, s1 .gt. ""
78  print *, s1 .gt. 4_"" ! { dg-error "Operands of comparison operator" }
79  print *, s4 .gt. "" ! { dg-error "Operands of comparison operator" }
80  print *, s4 .gt. 4_""
81
82  print *, s1 > ""
83  print *, s1 > 4_"" ! { dg-error "Operands of comparison operator" }
84  print *, s4 > "" ! { dg-error "Operands of comparison operator" }
85  print *, s4 > 4_""
86
87  print *, "" ==  ""
88  print *, 4_"" ==  "" ! { dg-error "Operands of comparison operator" }
89  print *, "" .eq.  ""
90  print *, 4_"" .eq.  "" ! { dg-error "Operands of comparison operator" }
91  print *, "" /=  ""
92  print *, 4_"" /=  "" ! { dg-error "Operands of comparison operator" }
93  print *, "" .ne.  ""
94  print *, 4_"" .ne.  "" ! { dg-error "Operands of comparison operator" }
95  print *, "" .lt.  ""
96  print *, 4_"" .lt.  "" ! { dg-error "Operands of comparison operator" }
97  print *, "" <  ""
98  print *, 4_"" <  "" ! { dg-error "Operands of comparison operator" }
99  print *, "" .le.  ""
100  print *, 4_"" .le.  "" ! { dg-error "Operands of comparison operator" }
101  print *, "" <=  ""
102  print *, 4_"" <=  "" ! { dg-error "Operands of comparison operator" }
103  print *, "" .gt.  ""
104  print *, 4_"" .gt.  "" ! { dg-error "Operands of comparison operator" }
105  print *, "" >  ""
106  print *, 4_"" >  "" ! { dg-error "Operands of comparison operator" }
107  print *, "" .ge.  ""
108  print *, 4_"" .ge.  "" ! { dg-error "Operands of comparison operator" }
109  print *, "" >=  ""
110  print *, 4_"" >=  "" ! { dg-error "Operands of comparison operator" }
111
112  end
113