aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2008-08-16 03:42:54 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2008-08-16 03:42:54 +0000
commit0ee02b1c5de09c0934b9a36f5b31a33941d90f9f (patch)
treef720fa21a2ad9f62e5195e2ab67e53652990f787 /gcc
parent3ae86bf4f45b1f110aa7bd09ea61a8fd30c2a983 (diff)
downloadgcc-0ee02b1c5de09c0934b9a36f5b31a33941d90f9f.zip
gcc-0ee02b1c5de09c0934b9a36f5b31a33941d90f9f.tar.gz
gcc-0ee02b1c5de09c0934b9a36f5b31a33941d90f9f.tar.bz2
re PR libfortran/35863 ([F2003] Implement ENCODING="UTF-8")
2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/35863 * gfortran.dg/utf8_1.f03: New test. * gfortran.dg/utf8_2.f03: New test. From-SVN: r139148
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/utf8_1.f0331
-rw-r--r--gcc/testsuite/gfortran.dg/utf8_2.f0316
3 files changed, 53 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2282f0f..b06b6a3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35863
+ * gfortran.dg/utf8_1.f03: New test.
+ * gfortran.dg/utf8_2.f03: New test.
+
2008-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* gcc.dg/pr30551-6.c: Skip for SPU.
diff --git a/gcc/testsuite/gfortran.dg/utf8_1.f03 b/gcc/testsuite/gfortran.dg/utf8_1.f03
new file mode 100644
index 0000000..6c30885
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/utf8_1.f03
@@ -0,0 +1,31 @@
+! { dg-do run }
+! { dg-options "-fbackslash" }
+! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+program test1
+ implicit none
+ integer, parameter :: k4 = 4
+ character(kind=4, len=30) :: string1, string2
+ character(kind=1, len=30) :: string3
+ string1 = k4_"This is Greek: \u039f\u03cd\u03c7\u03af"
+ string2 = k4_"Jerry in Japanese is: \u30b8\u30a8\u30ea\u30fc"
+ open(10, encoding="utf-8", status="scratch")
+ write(10,'(a)') trim(string1)
+ write(10,*) string2
+ rewind(10)
+ string1 = k4_""
+ string2 = k4_""
+ string3 = "abcdefghijklmnopqrstuvwxyz"
+ read(10,'(a)') string1
+ read(10,'(a)') string2
+ if (string1 /= k4_"This is Greek: \u039f\u03cd\u03c7\u03af") call abort
+ if (len(trim(string1)) /= 20) call abort
+ if (string2 /= k4_" Jerry in Japanese is: \u30b8\u30a8\u30ea\u30fc")&
+ & call abort
+ if (len(string2) /= 30) call abort
+ rewind(10)
+ read(10,'(a)') string3
+ if (string3 /= "This is Greek: ????") call abort
+end program test1
+! The following examples require UTF-8 enabled editor to see correctly.
+! ジエリー Sample of Japanese characters.
+! Οὐχὶ Sample of Greek characters. \ No newline at end of file
diff --git a/gcc/testsuite/gfortran.dg/utf8_2.f03 b/gcc/testsuite/gfortran.dg/utf8_2.f03
new file mode 100644
index 0000000..0146a2e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/utf8_2.f03
@@ -0,0 +1,16 @@
+! { dg-do run }
+! { dg-options "-fbackslash" }
+! Contributed by Tobias Burnus
+program test2
+ integer,parameter :: ucs4 = selected_char_kind("iso_10646")
+ character(1,ucs4),parameter :: nen=char(int(z'5e74'),ucs4), & !year
+ gatsu=char(int(z'6708'),kind=ucs4), & !month
+ nichi=char(int(z'65e5'),kind=ucs4) !day
+ character(25,ucs4) :: string
+ open(10, encoding="utf-8", status="scratch")
+ write(10,1) 2008,nen,8,gatsu,10,nichi
+1 format(i0,a,i0,a,i0,a)
+ rewind(10)
+ read(10,'(a)') string
+ if (string /= ucs4_"2008\u5e748\u670810\u65e5") call abort
+end program test2