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
This commit is contained in:
Janne Blomqvist 2015-09-04 00:18:56 +03:00
parent c8c030589b
commit 43ff5c7a2d
7 changed files with 23 additions and 22 deletions

View File

@ -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.

View File

@ -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
read(10, iostat=ios) c
if (ios.ne.21) then
close(10)
if (ios.ne.0) then
call system('rmdir junko.dir')
call abort
end if
close(10)
call system('rmdir junko.dir')
read(10, iostat=ios) c
if (ios.ne.21) then
close(10, status='delete')
call abort
end if
close(10, status='delete')
end program bug

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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 */

View File

@ -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);