diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/widechar_2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/widechar_2.f90 | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/widechar_2.f90 b/gcc/testsuite/gfortran.dg/widechar_2.f90 new file mode 100644 index 000000000..706901e6b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/widechar_2.f90 @@ -0,0 +1,69 @@ +! { dg-do run } +! { dg-options "-fbackslash" } + + character(kind=1,len=20) :: s1 + character(kind=4,len=20) :: s4 + + s1 = "this is me!" + s4 = s1 + call check(s1, 4_"this is me! ") + call check2(s1, 4_"this is me! ") + s4 = "this is me!" + call check(s1, 4_"this is me! ") + call check2(s1, 4_"this is me! ") + + s1 = "" + s4 = s1 + call check(s1, 4_" ") + call check2(s1, 4_" ") + s4 = "" + call check(s1, 4_" ") + call check2(s1, 4_" ") + + s1 = " \xFF" + s4 = s1 + call check(s1, 4_" \xFF ") + call check2(s1, 4_" \xFF ") + s4 = " \xFF" + call check(s1, 4_" \xFF ") + call check2(s1, 4_" \xFF ") + + s1 = " \xFF" + s4 = s1 + call check(s1, 4_" \xFF ") + call check2(s1, 4_" \xFF ") + s4 = " \xFF" + call check(s1, 4_" \xFF ") + call check2(s1, 4_" \xFF ") + +contains + subroutine check(s1,s4) + character(kind=1,len=20) :: s1, t1 + character(kind=4,len=20) :: s4 + t1 = s4 + if (t1 /= s1) call abort + if (len(s1) /= len(t1)) call abort + if (len(s1) /= len(s4)) call abort + if (len_trim(s1) /= len_trim(t1)) call abort + if (len_trim(s1) /= len_trim(s4)) call abort + end subroutine check + + subroutine check2(s1,s4) + character(kind=1,len=*) :: s1 + character(kind=4,len=*) :: s4 + character(kind=1,len=len(s1)) :: t1 + character(kind=4,len=len(s4)) :: t4 + + t1 = s4 + t4 = s1 + if (t1 /= s1) call abort + if (t4 /= s4) call abort + if (len(s1) /= len(t1)) call abort + if (len(s1) /= len(s4)) call abort + if (len(s1) /= len(t4)) call abort + if (len_trim(s1) /= len_trim(t1)) call abort + if (len_trim(s1) /= len_trim(s4)) call abort + if (len_trim(s1) /= len_trim(t4)) call abort + end subroutine check2 + +end |