chmod.c (chmod_internal): Fix case where mode_t is different from unsigned int.
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 19 Dec 2016 13:41:32 +0000 (13:41 +0000)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 19 Dec 2016 13:41:32 +0000 (13:41 +0000)
* intrinsics/chmod.c (chmod_internal): Fix case where mode_t is
different from unsigned int.

From-SVN: r243796

libgfortran/ChangeLog
libgfortran/intrinsics/chmod.c

index a53cc2d70739ff076901ae2d1a8efcb77631c797..129e7325a242cdea85b1a1cb4f93be2a648b53db 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * intrinsics/chmod.c (chmod_internal): Fix case where mode_t is
+       different from unsigned int.
+
 2016-12-18  Dominique d'Humieres  <dominiq@lps.ens.fr>
 
        PR fortran/78545
index 5aae77b055377bb650d3093a2e8d2e24efc2c2e5..4f4d723daf1f9170c26755ef4b80e35ed8618063 100644 (file)
@@ -82,16 +82,10 @@ chmod_internal (char *file, char *mode, gfc_charlen_type mode_len)
 
   if (mode[0] >= '0' && mode[0] <= '9')
     {
-#ifdef __MINGW32__
       unsigned fmode;
       if (sscanf (mode, "%o", &fmode) != 1)
        return 1;
-      file_mode = (mode_t) fmode;
-#else
-      if (sscanf (mode, "%o", &file_mode) != 1)
-       return 1;
-#endif
-      return chmod (file, file_mode);
+      return chmod (file, (mode_t) fmode);
     }
 
   /* Read the current file mode. */