diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2015-09-04 00:18:56 +0300 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2015-09-04 00:18:56 +0300 |
commit | 43ff5c7a2dd5912a3bf90bd0f9cc599ac3a3acce (patch) | |
tree | 593d7f86e1d9512136f291a704411e7af2722593 | |
parent | c8c030589bd61290418753e766f26d8f99e8b074 (diff) | |
download | gcc-43ff5c7a2dd5912a3bf90bd0f9cc599ac3a3acce.zip gcc-43ff5c7a2dd5912a3bf90bd0f9cc599ac3a3acce.tar.gz gcc-43ff5c7a2dd5912a3bf90bd0f9cc599ac3a3acce.tar.bz2 |
libgfortran: Use remove(3) instead of unlink(2) when deleting files.
testsuite:
2015-09-04 Janne Blomqvist <jb@gcc.gnu.org>
* gfortran.dg/read_dir.f90: Delete empty directory when closing
rather than calling rmdir, cleanup if open fails.
libgfortran:
2015-09-04 Janne Blomqvist <jb@gcc.gnu.org>
* io/unix.h (delete_file): Remove prototype.
* io/unix.c (delete_file): Remove function.
* io/close.c (st_close): Replace delete_file and unlink with
remove.
* io/open.c (already_open): Replace unlink with remove.
From-SVN: r227472
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/read_dir.f90 | 11 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 8 | ||||
-rw-r--r-- | libgfortran/io/close.c | 4 | ||||
-rw-r--r-- | libgfortran/io/open.c | 2 | ||||
-rw-r--r-- | libgfortran/io/unix.c | 10 | ||||
-rw-r--r-- | libgfortran/io/unix.h | 3 |
7 files changed, 22 insertions, 21 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 13f5d7e..e2c55ba 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-09-04 Janne Blomqvist <jb@gcc.gnu.org> + + * gfortran.dg/read_dir.f90: Delete empty directory when closing + rather than calling rmdir, cleanup if open fails. + 2015-09-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com> * gcc.target/powerpc/vec-mult-char-1.c: New test. diff --git a/gcc/testsuite/gfortran.dg/read_dir.f90 b/gcc/testsuite/gfortran.dg/read_dir.f90 index 0e28f9f..4009ed6 100644 --- a/gcc/testsuite/gfortran.dg/read_dir.f90 +++ b/gcc/testsuite/gfortran.dg/read_dir.f90 @@ -7,13 +7,14 @@ program bug integer ios call system('[ -d junko.dir ] || mkdir junko.dir') open(unit=10, file='junko.dir',iostat=ios,action='read',access='stream') - if (ios.ne.0) call abort + if (ios.ne.0) then + call system('rmdir junko.dir') + call abort + end if read(10, iostat=ios) c if (ios.ne.21) then - close(10) - call system('rmdir junko.dir') + close(10, status='delete') call abort end if - close(10) - call system('rmdir junko.dir') + close(10, status='delete') end program bug diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 0958ca7..5da6ea3 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,11 @@ +2015-09-04 Janne Blomqvist <jb@gcc.gnu.org> + + * io/unix.h (delete_file): Remove prototype. + * io/unix.c (delete_file): Remove function. + * io/close.c (st_close): Replace delete_file and unlink with + remove. + * io/open.c (already_open): Replace unlink with remove. + 2015-09-02 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/67414 diff --git a/libgfortran/io/close.c b/libgfortran/io/close.c index 38855ee..1e109933 100644 --- a/libgfortran/io/close.c +++ b/libgfortran/io/close.c @@ -80,7 +80,7 @@ st_close (st_parameter_close *clp) if (status == CLOSE_DELETE) { #if HAVE_UNLINK_OPEN_FILE - delete_file (u); + remove (u->filename); #else path = strdup (u->filename); #endif @@ -92,7 +92,7 @@ st_close (st_parameter_close *clp) #if !HAVE_UNLINK_OPEN_FILE if (path != NULL) { - unlink (path); + remove (path); free (path); } #endif diff --git a/libgfortran/io/open.c b/libgfortran/io/open.c index 4654de2..630bca6 100644 --- a/libgfortran/io/open.c +++ b/libgfortran/io/open.c @@ -664,7 +664,7 @@ already_open (st_parameter_open *opp, gfc_unit * u, unit_flags * flags) #if !HAVE_UNLINK_OPEN_FILE if (u->filename && u->flags.status == STATUS_SCRATCH) - unlink (u->filename); + remove (u->filename); #endif free (u->filename); u->filename = NULL; diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c index fd5f277..5385d8b 100644 --- a/libgfortran/io/unix.c +++ b/libgfortran/io/unix.c @@ -1716,16 +1716,6 @@ flush_all_units (void) } -/* delete_file()-- Given a unit structure, delete the file associated - * with the unit. Returns nonzero if something went wrong. */ - -int -delete_file (gfc_unit * u) -{ - return unlink (u->filename); -} - - /* file_exists()-- Returns nonzero if the current filename exists on * the system */ diff --git a/libgfortran/io/unix.h b/libgfortran/io/unix.h index 78a41f7..d1aa75d 100644 --- a/libgfortran/io/unix.h +++ b/libgfortran/io/unix.h @@ -141,9 +141,6 @@ internal_proto(compare_file_filename); extern gfc_unit *find_file (const char *file, gfc_charlen_type file_len); internal_proto(find_file); -extern int delete_file (gfc_unit *); -internal_proto(delete_file); - extern int file_exists (const char *file, gfc_charlen_type file_len); internal_proto(file_exists); |