summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-29 20:49:16 +0000
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-29 20:49:16 +0000
commitfbb6e02a8d0f2c975c310daa36fa3796aa41961c (patch)
tree046b4dcbdd052dcb8821365a1f07bfd5f448b707
parente5ff5f8eab0df7ec1979b63ac23a26c887b0bfc6 (diff)
downloadppe42-gcc-fbb6e02a8d0f2c975c310daa36fa3796aa41961c.tar.gz
ppe42-gcc-fbb6e02a8d0f2c975c310daa36fa3796aa41961c.zip
PR 62215 Unlink old module file before renaming.
2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com> Backport from trunk PR fortran/62215 * module.c (gfc_dump_module): Unlink old module file before renaming new one. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@214743 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/module.c5
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9f4bec74e6c..c386a97fe02 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com>
+
+ Backport from trunk
+ PR fortran/62215
+ * module.c (gfc_dump_module): Unlink old module file before
+ renaming new one.
+
2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 2bfe1778433..f50c5b74040 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -6072,7 +6072,10 @@ gfc_dump_module (const char *name, int dump_flag)
|| crc_old != crc)
{
/* Module file have changed, replace the old one. */
- if (rename (filename_tmp, filename))
+ if (unlink (filename) && errno != ENOENT)
+ gfc_fatal_error ("Can't delete module file '%s': %s", filename,
+ xstrerror (errno));
+ if (rename (filename_tmp, filename))
gfc_fatal_error ("Can't rename module file '%s' to '%s': %s",
filename_tmp, filename, xstrerror (errno));
}
OpenPOWER on IntegriCloud