Patchwork [fortran,committed] PR 62215 Unlink old module file before renaming

login
register
mail settings
Submitter Janne Blomqvist
Date Aug. 29, 2014, 8:52 p.m.
Message ID <CAO9iq9FYUXYAz-ySSCSh6RYOid8jnX_0x+zE8txTbX_j0mQ-pg@mail.gmail.com>
Download mbox | patch
Permalink /patch/384386/
State New
Headers show

Comments

Janne Blomqvist - Aug. 29, 2014, 8:52 p.m.
Hi,

per the discussion in the PR, committed the attached patch to trunk
and 4.9, which fixes a regression I introduced when implementing the
zlib compressed module files stuff:

Patch

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 214738)
+++ ChangeLog   (working copy)
@@ -1,3 +1,9 @@ 
+2014-08-29  Jeffrey Armstrong  <jeffrey.armstrong@approximatrix.com>
+
+       PR fortran/62215
+       * module.c (gfc_dump_module): Unlink old module file before
+       renaming new one.
+
 2014-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend_passes (expr_array):  Replace by vec template.
Index: module.c
===================================================================
--- module.c    (revision 214738)
+++ module.c    (working copy)
@@ -6040,6 +6040,9 @@  gfc_dump_module (const char *name, int d
       || crc_old != crc)
     {
       /* Module file have changed, replace the old one.  */
+      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));