diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2017-12-03 16:47:12 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2017-12-03 16:47:12 +0000 |
commit | c4508d0ad7fb8fe23517a6b5e874c4573fdec8a0 (patch) | |
tree | 20e444c84db177bd87ead91a4dd32bcdd4acf3c4 /gcc | |
parent | 7c731281574f7d89c6fed487fe646176603ad98f (diff) | |
download | gcc-c4508d0ad7fb8fe23517a6b5e874c4573fdec8a0.zip gcc-c4508d0ad7fb8fe23517a6b5e874c4573fdec8a0.tar.gz gcc-c4508d0ad7fb8fe23517a6b5e874c4573fdec8a0.tar.bz2 |
re PR fortran/83191 (Writing a namelist with repeated complex numbers)
2017-12-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Dominique d'Humieres <dominiq@lps.ens.fr>
PR libgfortran/83191
* io/transfer.c (list_formatted_read_scalar): Do not set
namelist_mode bit here. (namelist_read): Likewise.
(data_transfer_init): Clear the mode bit here.
(finalize_transfer): Do set the mode bit just before any calls
to namelist_read or namelist_write. It can now be referred to
in complex_write.
^ io/write.c (write_complex): Suppress the leading blanks when
namelist_mode bit is not set to 1.
* gfortran.dg/namelist_95.f90: New test.
Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
From-SVN: r255365
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/namelist_95.f90 | 23 |
2 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0a8ed92..792d1b9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-12-03 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/831916 + * gfortran.dg/namelist_95.f90: New test. + 2017-12-01 Jan Hubicka <hubicka@ucw.cz> PR target/81616 diff --git a/gcc/testsuite/gfortran.dg/namelist_95.f90 b/gcc/testsuite/gfortran.dg/namelist_95.f90 new file mode 100644 index 0000000..5956648 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_95.f90 @@ -0,0 +1,23 @@ +! { dg-do run } +! PR83191 Writing a namelist with repeated complex + +program test + +implicit none + +integer, parameter :: UNIT = 1 +character(len=8), parameter :: FILE = "namelist" + +complex, dimension(3) :: a = (/ (0.0, 0.0), (0.0, 0.0), (3.0, 4.0) /) + +namelist /complex_namelist/ a + +open(UNIT, file=FILE) +write(UNIT, nml=complex_namelist) +close(UNIT) + +open(UNIT, file=FILE) +read(UNIT, nml=complex_namelist) +close(UNIT, status="delete") +if (any(a.ne.(/ (0.0, 0.0), (0.0, 0.0), (3.0, 4.0) /))) call abort +end program test |