diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 22f2817943e7..a75f983f1bdd 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2008-11-25 Jan Kratochvil + + PR fortran/38248 + * module.c (gfc_dump_module): Check rename/unlink syscalls errors. + 2008-11-25 Eric Botcazou PR fortran/37319 diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 35f5ce5176da..a49745ad49cb 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -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)); + } }