+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.
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
+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
if (status == CLOSE_DELETE)
{
#if HAVE_UNLINK_OPEN_FILE
- delete_file (u);
+ remove (u->filename);
#else
path = strdup (u->filename);
#endif
#if !HAVE_UNLINK_OPEN_FILE
if (path != NULL)
{
- unlink (path);
+ remove (path);
free (path);
}
#endif
#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;
}
-/* 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 */
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);