diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2014-09-17 00:40:28 +0300 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2014-09-17 00:40:28 +0300 |
commit | 0e05c303e5c3c7882d5e36a4d5b66f0563ae6478 (patch) | |
tree | 34b3e91356fc23c2feb76d92e78fad28bd83a126 /gcc | |
parent | 7425e424b5222704558591fc6cf26eaa57fb81de (diff) | |
download | gcc-0e05c303e5c3c7882d5e36a4d5b66f0563ae6478.zip gcc-0e05c303e5c3c7882d5e36a4d5b66f0563ae6478.tar.gz gcc-0e05c303e5c3c7882d5e36a4d5b66f0563ae6478.tar.bz2 |
PR libfortran/62768 Handle filenames with embedded null characters.
testsuite ChangeLog:
2014-09-17 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/62768
* gfortran.dg/filename_null.f90: New test.
libgfortran ChangeLog:
2014-09-17 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/62768
* io/io.h (gfc_unit): Store C string for the filename.
* io/close.c (st_close): Use gfc_unit.filename.
* io/inquire.c (inquire_via_unit): Likewise.
* io/open.c (new_unit): Likewise.
(already_open): Likewise, unlink file before freeing filename.
* io/unit.c (init_units): Likewise.
(close_unit_1): Likewise.
(filename_from_unit): Likewise.
* io/unix.c (compare_file_filename): Likewise.
(find_file0): Likewise.
(delete_file): Likewise.
From-SVN: r215307
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/filename_null.f90 | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 93e40b6..507022c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-09-17 Janne Blomqvist <jb@gcc.gnu.org> + + PR libfortran/62768 + * gfortran.dg/filename_null.f90: New test. + 2014-09-16 H.J. Lu <hongjiu.lu@intel.com> * gcc.dg/pg-override.c: Fix a typo. diff --git a/gcc/testsuite/gfortran.dg/filename_null.f90 b/gcc/testsuite/gfortran.dg/filename_null.f90 new file mode 100644 index 0000000..f24d243 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/filename_null.f90 @@ -0,0 +1,17 @@ +! { dg-do run } +! PR 62768 +! Filenames with embedded NULL characters are truncated, make sure +! inquire reports the correct truncated name. +program filename_null + implicit none + character(len=15), parameter :: s = "hello" // achar(0) // "world", & + s2 = "hello" + character(len=15) :: r + logical :: l + open(10, file=s) + inquire(unit=10, name=r) + if (r /= s2) call abort() + inquire(file=s2, exist=l) + if (.not. l) call abort() + close(10, status="delete") +end program filename_null |