2 ! { dg-options "-fbackslash" }
4 character(kind=1,len=20) :: s1
5 character(kind=4,len=20) :: s4
9 call check(s1, 4_"this is me! ")
10 call check2(s1, 4_"this is me! ")
12 call check(s1, 4_"this is me! ")
13 call check2(s1, 4_"this is me! ")
18 call check2(s1, 4_" ")
21 call check2(s1, 4_" ")
25 call check(s1, 4_" \xFF ")
26 call check2(s1, 4_" \xFF ")
28 call check(s1, 4_" \xFF ")
29 call check2(s1, 4_" \xFF ")
33 call check(s1, 4_" \xFF ")
34 call check2(s1, 4_" \xFF ")
36 call check(s1, 4_" \xFF ")
37 call check2(s1, 4_" \xFF ")
40 subroutine check(s1,s4)
41 character(kind=1,len=20) :: s1, t1
42 character(kind=4,len=20) :: s4
44 if (t1 /= s1) call abort
45 if (len(s1) /= len(t1)) call abort
46 if (len(s1) /= len(s4)) call abort
47 if (len_trim(s1) /= len_trim(t1)) call abort
48 if (len_trim(s1) /= len_trim(s4)) call abort
51 subroutine check2(s1,s4)
52 character(kind=1,len=*) :: s1
53 character(kind=4,len=*) :: s4
54 character(kind=1,len=len(s1)) :: t1
55 character(kind=4,len=len(s4)) :: t4
59 if (t1 /= s1) call abort
60 if (t4 /= s4) call abort
61 if (len(s1) /= len(t1)) call abort
62 if (len(s1) /= len(s4)) call abort
63 if (len(s1) /= len(t4)) call abort
64 if (len_trim(s1) /= len_trim(t1)) call abort
65 if (len_trim(s1) /= len_trim(s4)) call abort
66 if (len_trim(s1) /= len_trim(t4)) call abort