OSDN Git Service

2006-10-21 Steven G. Kargl <kargl@gcc.gnu.org>
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Oct 2006 22:38:56 +0000 (22:38 +0000)
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Oct 2006 22:38:56 +0000 (22:38 +0000)
        * runtime/error.c: Add errno.h
        (generate_error): Set iostat to errno on OS error.
        * libgfortran.h: Set ERROR_OS to 5000

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117939 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/libgfortran.h
libgfortran/runtime/error.c

index 19c2a92..a9e7082 100644 (file)
@@ -1,3 +1,9 @@
+2006-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * runtime/error.c: Add errno.h
+       (generate_error): Set iostat to errno on OS error.
+       * libgfortran.h: Set ERROR_OS to 5000
+
 2006-10-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
        * generated/minval_r8.c: Regenerate.
index cdbde51..e023f0e 100644 (file)
@@ -397,7 +397,7 @@ typedef enum
   ERROR_EOR = -2,
   ERROR_END = -1,
   ERROR_OK = 0,                        /* Indicates success, must be zero.  */
-  ERROR_OS,                    /* Operating system error, more info in errno.  */
+  ERROR_OS = 5000,             /* Operating system error, more info in errno.  */
   ERROR_OPTION_CONFLICT,
   ERROR_BAD_OPTION,
   ERROR_MISSING_OPTION,
index 9960733..f8f76d3 100644 (file)
@@ -34,6 +34,7 @@ Boston, MA 02110-1301, USA.  */
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
+#include <errno.h>
 
 #include "libgfortran.h"
 #include "../io/io.h"
@@ -457,7 +458,7 @@ generate_error (st_parameter_common *cmp, int family, const char *message)
 {
   /* Set the error status.  */
   if ((cmp->flags & IOPARM_HAS_IOSTAT))
-    *cmp->iostat = family;
+    *cmp->iostat = (family == ERROR_OS) ? errno : family;
 
   if (message == NULL)
     message =