2008-05-30 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gfortran.dg / widechar_intrinsics_4.f90
blobc9f8e8cd26c64b5fa6f0216b73f4878a7d9b1a89
1 ! { dg-do run }
2 ! { dg-options "-fbackslash" }
4 character(kind=1,len=20) :: s1
5 character(kind=4,len=20) :: s4
7 call test_adjust1 (" foo bar ", 4_" foo bar ")
8 s1 = " foo bar " ; s4 = 4_" foo bar "
9 call test_adjust2 (s1, s4)
11 call test_adjust1 (" foo bar \xFF", 4_" foo bar \xFF")
12 s1 = " foo bar \xFF" ; s4 = 4_" foo bar \xFF"
13 call test_adjust2 (s1, s4)
15 call test_adjust1 ("\0 foo bar \xFF", 4_"\0 foo bar \xFF")
16 s1 = "\0 foo bar \xFF" ; s4 = 4_"\0 foo bar \xFF"
17 call test_adjust2 (s1, s4)
19 s4 = "\0 foo bar \xFF"
20 if (adjustl (s4) /= adjustl (4_"\0 foo bar \xFF ")) call abort
21 if (adjustr (s4) /= adjustr (4_"\0 foo bar \xFF ")) call abort
23 s4 = " \0 foo bar \xFF"
24 if (adjustl (s4) /= adjustl (4_" \0 foo bar \xFF ")) call abort
25 if (adjustr (s4) /= adjustr (4_" \0 foo bar \xFF ")) call abort
27 s4 = 4_" \U12345678\xeD bar \ufd30"
28 if (adjustl (s4) /= &
29 adjustl (4_" \U12345678\xeD bar \ufd30 ")) call abort
30 if (adjustr (s4) /= &
31 adjustr (4_" \U12345678\xeD bar \ufd30 ")) call abort
33 contains
35 subroutine test_adjust1 (s1, s4)
37 character(kind=1,len=*) :: s1
38 character(kind=4,len=*) :: s4
40 character(kind=1,len=len(s4)) :: t1
41 character(kind=4,len=len(s1)) :: t4
43 if (len(s1) /= len(s4)) call abort
44 if (len(t1) /= len(t4)) call abort
46 if (len_trim(s1) /= len_trim (s4)) call abort
48 t1 = adjustl (s4)
49 t4 = adjustl (s1)
50 if (t1 /= adjustl (s1)) call abort
51 if (t4 /= adjustl (s4)) call abort
52 if (len_trim (t1) /= len_trim (t4)) call abort
53 if (len_trim (adjustl (s1)) /= len_trim (t4)) call abort
54 if (len_trim (adjustl (s4)) /= len_trim (t1)) call abort
56 if (len_trim (t1) /= len (trim (t1))) call abort
57 if (len_trim (s1) /= len (trim (s1))) call abort
58 if (len_trim (t4) /= len (trim (t4))) call abort
59 if (len_trim (s4) /= len (trim (s4))) call abort
61 t1 = adjustr (s4)
62 t4 = adjustr (s1)
63 if (t1 /= adjustr (s1)) call abort
64 if (t4 /= adjustr (s4)) call abort
65 if (len_trim (t1) /= len_trim (t4)) call abort
66 if (len_trim (adjustr (s1)) /= len_trim (t4)) call abort
67 if (len_trim (adjustr (s4)) /= len_trim (t1)) call abort
68 if (len (t1) /= len_trim (t1)) call abort
69 if (len (t4) /= len_trim (t4)) call abort
71 if (len_trim (t1) /= len (trim (t1))) call abort
72 if (len_trim (s1) /= len (trim (s1))) call abort
73 if (len_trim (t4) /= len (trim (t4))) call abort
74 if (len_trim (s4) /= len (trim (s4))) call abort
76 end subroutine test_adjust1
78 subroutine test_adjust2 (s1, s4)
80 character(kind=1,len=20) :: s1
81 character(kind=4,len=20) :: s4
83 character(kind=1,len=len(s4)) :: t1
84 character(kind=4,len=len(s1)) :: t4
86 if (len(s1) /= len(s4)) call abort
87 if (len(t1) /= len(t4)) call abort
89 if (len_trim(s1) /= len_trim (s4)) call abort
91 t1 = adjustl (s4)
92 t4 = adjustl (s1)
93 if (t1 /= adjustl (s1)) call abort
94 if (t4 /= adjustl (s4)) call abort
95 if (len_trim (t1) /= len_trim (t4)) call abort
96 if (len_trim (adjustl (s1)) /= len_trim (t4)) call abort
97 if (len_trim (adjustl (s4)) /= len_trim (t1)) call abort
99 if (len_trim (t1) /= len (trim (t1))) call abort
100 if (len_trim (s1) /= len (trim (s1))) call abort
101 if (len_trim (t4) /= len (trim (t4))) call abort
102 if (len_trim (s4) /= len (trim (s4))) call abort
104 t1 = adjustr (s4)
105 t4 = adjustr (s1)
106 if (t1 /= adjustr (s1)) call abort
107 if (t4 /= adjustr (s4)) call abort
108 if (len_trim (t1) /= len_trim (t4)) call abort
109 if (len_trim (adjustr (s1)) /= len_trim (t4)) call abort
110 if (len_trim (adjustr (s4)) /= len_trim (t1)) call abort
111 if (len (t1) /= len_trim (t1)) call abort
112 if (len (t4) /= len_trim (t4)) call abort
114 if (len_trim (t1) /= len (trim (t1))) call abort
115 if (len_trim (s1) /= len (trim (s1))) call abort
116 if (len_trim (t4) /= len (trim (t4))) call abort
117 if (len_trim (s4) /= len (trim (s4))) call abort
119 end subroutine test_adjust2