aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2014-04-26 21:56:48 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2014-04-26 21:56:48 +0000
commitdd9eb0f70e0267f2dddd880332dfb28ee0203470 (patch)
tree69816a463d1c40e71729d7b11c1283f5878ef62d /gcc
parent42c1e008b0153a83329fb63497f936cbb95c68e1 (diff)
downloadgcc-dd9eb0f70e0267f2dddd880332dfb28ee0203470.zip
gcc-dd9eb0f70e0267f2dddd880332dfb28ee0203470.tar.gz
gcc-dd9eb0f70e0267f2dddd880332dfb28ee0203470.tar.bz2
re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-04-26 Jerry DeLisle <jvdelisle@gcc.gnu> PR libfortran/52539 * gfortran.dg/namelist_utf8.f90: New test. From-SVN: r209829
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/namelist_utf8.f9030
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4ed1b38..7d01d44 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-04-26 Jerry DeLisle <jvdelisle@gcc.gnu>
+
+ PR libfortran/52539
+ * gfortran.dg/namelist_utf8.f90: New test.
+
2014-04-26 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/tree-ssa/alias-30.c (dg-options): Dump only fre1 details.
diff --git a/gcc/testsuite/gfortran.dg/namelist_utf8.f90 b/gcc/testsuite/gfortran.dg/namelist_utf8.f90
new file mode 100644
index 0000000..c494b8c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/namelist_utf8.f90
@@ -0,0 +1,30 @@
+! { dg-do run }
+! PR52539 UTF-8 support for namelist read and write
+
+character(len=10, kind=4) :: str, str2
+character(len=25, kind=4) :: str3
+
+namelist /nml/ str
+
+str = 4_'a'//char (int (z'4F60'),4) &
+ //char (int (z'597D'), 4)//4_'b'
+
+open(99, encoding='utf-8',form='formatted')
+write(99, '(3a)') '&nml str = "', str, '" /'
+write(99, '(a)') str
+rewind(99)
+
+str = 4_'XXXX'
+str2 = 4_'YYYY'
+read(99,nml=nml)
+read(99, *) str2
+if (str2 /= str) call abort
+rewind(99)
+
+read(99,'(A)') str3
+if (str3 /= 4_'&nml str = "' // str // 4_'" /') call abort
+read(99,'(A)') str3
+if (str3 /= str) call abort
+
+close(99, status='delete')
+end