re PR fortran/38248 (Ignored temporary module files manipulation errors)
authorJan Kratochvil <jan.kratochvil@redhat.com>
Tue, 25 Nov 2008 12:51:44 +0000 (12:51 +0000)
committerTobias Burnus <burnus@gcc.gnu.org>
Tue, 25 Nov 2008 12:51:44 +0000 (13:51 +0100)
2008-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

        PR fortran/38248
        * module.c (gfc_dump_module): Check rename/unlink syscalls errors.

From-SVN: r142190

gcc/fortran/ChangeLog
gcc/fortran/module.c

index 22f2817..a75f983 100644 (file)
@@ -1,3 +1,8 @@
+2008-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR fortran/38248
+       * module.c (gfc_dump_module): Check rename/unlink syscalls errors.
+
 2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR fortran/37319
index 35f5ce5..a49745a 100644 (file)
@@ -4850,11 +4850,19 @@ gfc_dump_module (const char *name, int dump_flag)
       || memcmp (md5_old, md5_new, sizeof (md5_old)) != 0)
     {
       /* Module file have changed, replace the old one.  */
-      unlink (filename);
-      rename (filename_tmp, filename);
+      if (unlink (filename))
+       gfc_fatal_error ("Can't delete module file '%s': %s", filename,
+                        strerror (errno));
+      if (rename (filename_tmp, filename))
+       gfc_fatal_error ("Can't rename module file '%s' to '%s': %s",
+                        filename_tmp, filename, strerror (errno));
     }
   else
-    unlink (filename_tmp);
+    {
+      if (unlink (filename_tmp))
+       gfc_fatal_error ("Can't delete temporary module file '%s': %s",
+                        filename_tmp, strerror (errno));
+    }
 }