1! { dg-do run } 2! { dg-options "-fbackslash" } 3 4 character(kind=1,len=20) :: s1, t1 5 character(kind=4,len=20) :: s4, t4 6 7 call test (4_"ccc ", 4_"bbb", 4_"ccc", 4_"ddd") 8 call test (4_" \xACp ", 4_" \x900000 ", 4_" \xACp ", 4_"ddd") 9 call test (4_" \xACp ", 4_" \x900000 ", 4_" \xACp ", 4_"ddd") 10 11 call test2 (4_" \x900000 ", 4_" \xACp ", 4_"ddd") 12 13contains 14 15 subroutine test(s4, t4, u4, v4) 16 character(kind=4,len=*) :: s4, t4, u4, v4 17 18 if (.not. (s4 >= t4)) call abort 19 if (.not. (s4 > t4)) call abort 20 if (.not. (s4 .ge. t4)) call abort 21 if (.not. (s4 .gt. t4)) call abort 22 if ( (s4 == t4)) call abort 23 if (.not. (s4 /= t4)) call abort 24 if ( (s4 .eq. t4)) call abort 25 if (.not. (s4 .ne. t4)) call abort 26 if ( (s4 <= t4)) call abort 27 if ( (s4 < t4)) call abort 28 if ( (s4 .le. t4)) call abort 29 if ( (s4 .lt. t4)) call abort 30 31 if (.not. (s4 >= u4)) call abort 32 if ( (s4 > u4)) call abort 33 if (.not. (s4 .ge. u4)) call abort 34 if ( (s4 .gt. u4)) call abort 35 if (.not. (s4 == u4)) call abort 36 if ( (s4 /= u4)) call abort 37 if (.not. (s4 .eq. u4)) call abort 38 if ( (s4 .ne. u4)) call abort 39 if (.not. (s4 <= u4)) call abort 40 if ( (s4 < u4)) call abort 41 if (.not. (s4 .le. u4)) call abort 42 if ( (s4 .lt. u4)) call abort 43 44 if ( (s4 >= v4)) call abort 45 if ( (s4 > v4)) call abort 46 if ( (s4 .ge. v4)) call abort 47 if ( (s4 .gt. v4)) call abort 48 if ( (s4 == v4)) call abort 49 if (.not. (s4 /= v4)) call abort 50 if ( (s4 .eq. v4)) call abort 51 if (.not. (s4 .ne. v4)) call abort 52 if (.not. (s4 <= v4)) call abort 53 if (.not. (s4 < v4)) call abort 54 if (.not. (s4 .le. v4)) call abort 55 if (.not. (s4 .lt. v4)) call abort 56 57 end subroutine test 58 59 subroutine test2(t4, u4, v4) 60 character(kind=4,len=*) :: t4, u4, v4 61 62 if (.not. (4_" \xACp " >= t4)) call abort 63 if (.not. (4_" \xACp " > t4)) call abort 64 if (.not. (4_" \xACp " .ge. t4)) call abort 65 if (.not. (4_" \xACp " .gt. t4)) call abort 66 if ( (4_" \xACp " == t4)) call abort 67 if (.not. (4_" \xACp " /= t4)) call abort 68 if ( (4_" \xACp " .eq. t4)) call abort 69 if (.not. (4_" \xACp " .ne. t4)) call abort 70 if ( (4_" \xACp " <= t4)) call abort 71 if ( (4_" \xACp " < t4)) call abort 72 if ( (4_" \xACp " .le. t4)) call abort 73 if ( (4_" \xACp " .lt. t4)) call abort 74 75 if (.not. (4_" \xACp " >= u4)) call abort 76 if ( (4_" \xACp " > u4)) call abort 77 if (.not. (4_" \xACp " .ge. u4)) call abort 78 if ( (4_" \xACp " .gt. u4)) call abort 79 if (.not. (4_" \xACp " == u4)) call abort 80 if ( (4_" \xACp " /= u4)) call abort 81 if (.not. (4_" \xACp " .eq. u4)) call abort 82 if ( (4_" \xACp " .ne. u4)) call abort 83 if (.not. (4_" \xACp " <= u4)) call abort 84 if ( (4_" \xACp " < u4)) call abort 85 if (.not. (4_" \xACp " .le. u4)) call abort 86 if ( (4_" \xACp " .lt. u4)) call abort 87 88 if ( (4_" \xACp " >= v4)) call abort 89 if ( (4_" \xACp " > v4)) call abort 90 if ( (4_" \xACp " .ge. v4)) call abort 91 if ( (4_" \xACp " .gt. v4)) call abort 92 if ( (4_" \xACp " == v4)) call abort 93 if (.not. (4_" \xACp " /= v4)) call abort 94 if ( (4_" \xACp " .eq. v4)) call abort 95 if (.not. (4_" \xACp " .ne. v4)) call abort 96 if (.not. (4_" \xACp " <= v4)) call abort 97 if (.not. (4_" \xACp " < v4)) call abort 98 if (.not. (4_" \xACp " .le. v4)) call abort 99 if (.not. (4_" \xACp " .lt. v4)) call abort 100 101 end subroutine test2 102 103 subroutine test3(t4, u4, v4) 104 character(kind=4,len=*) :: t4, u4, v4 105 106 if (.not. (4_" \xACp " >= 4_" \x900000 ")) call abort 107 if (.not. (4_" \xACp " > 4_" \x900000 ")) call abort 108 if (.not. (4_" \xACp " .ge. 4_" \x900000 ")) call abort 109 if (.not. (4_" \xACp " .gt. 4_" \x900000 ")) call abort 110 if ( (4_" \xACp " == 4_" \x900000 ")) call abort 111 if (.not. (4_" \xACp " /= 4_" \x900000 ")) call abort 112 if ( (4_" \xACp " .eq. 4_" \x900000 ")) call abort 113 if (.not. (4_" \xACp " .ne. 4_" \x900000 ")) call abort 114 if ( (4_" \xACp " <= 4_" \x900000 ")) call abort 115 if ( (4_" \xACp " < 4_" \x900000 ")) call abort 116 if ( (4_" \xACp " .le. 4_" \x900000 ")) call abort 117 if ( (4_" \xACp " .lt. 4_" \x900000 ")) call abort 118 119 if (.not. (4_" \xACp " >= 4_" \xACp ")) call abort 120 if ( (4_" \xACp " > 4_" \xACp ")) call abort 121 if (.not. (4_" \xACp " .ge. 4_" \xACp ")) call abort 122 if ( (4_" \xACp " .gt. 4_" \xACp ")) call abort 123 if (.not. (4_" \xACp " == 4_" \xACp ")) call abort 124 if ( (4_" \xACp " /= 4_" \xACp ")) call abort 125 if (.not. (4_" \xACp " .eq. 4_" \xACp ")) call abort 126 if ( (4_" \xACp " .ne. 4_" \xACp ")) call abort 127 if (.not. (4_" \xACp " <= 4_" \xACp ")) call abort 128 if ( (4_" \xACp " < 4_" \xACp ")) call abort 129 if (.not. (4_" \xACp " .le. 4_" \xACp ")) call abort 130 if ( (4_" \xACp " .lt. 4_" \xACp ")) call abort 131 132 if ( (4_" \xACp " >= 4_"ddd")) call abort 133 if ( (4_" \xACp " > 4_"ddd")) call abort 134 if ( (4_" \xACp " .ge. 4_"ddd")) call abort 135 if ( (4_" \xACp " .gt. 4_"ddd")) call abort 136 if ( (4_" \xACp " == 4_"ddd")) call abort 137 if (.not. (4_" \xACp " /= 4_"ddd")) call abort 138 if ( (4_" \xACp " .eq. 4_"ddd")) call abort 139 if (.not. (4_" \xACp " .ne. 4_"ddd")) call abort 140 if (.not. (4_" \xACp " <= 4_"ddd")) call abort 141 if (.not. (4_" \xACp " < 4_"ddd")) call abort 142 if (.not. (4_" \xACp " .le. 4_"ddd")) call abort 143 if (.not. (4_" \xACp " .lt. 4_"ddd")) call abort 144 145 end subroutine test3 146 147end 148