Use C99 bool instead of enum try.
authorJanne Blomqvist <jb@gcc.gnu.org>
Tue, 19 Mar 2013 11:13:32 +0000 (13:13 +0200)
committerJanne Blomqvist <jb@gcc.gnu.org>
Tue, 19 Mar 2013 11:13:32 +0000 (13:13 +0200)
2013-03-19  Janne Blomqvist  <jb@gcc.gnu.org>

* libgfortran.h: Include stdbool.h.
(enum try): Remove.
(notify_std): Change return type to bool.
* intrinsics/chmod.c: Don't include stdbool.h.
* intrinsics/execute_command_line.c: Likewise.
* io/format.c: Likewise.
* io/list_read.c (nml_parse_qualifier): Change return type to bool.
(nml_read_obj): Likewise.
(nml_get_obj_data): Likewise.
* io/transfer.c (read_block_form): Fix comment.
(write_buf): Change return type to bool.
* io/write.c: Don't include stdbool.h.
* io/write_float.def (output_float): Change return type to bool.
(output_float_FMT_G_ ## x): Change type of result variable.
* runtime/error.c (notify_std): Change return type to bool.

From-SVN: r196791

libgfortran/ChangeLog
libgfortran/intrinsics/chmod.c
libgfortran/intrinsics/execute_command_line.c
libgfortran/io/format.c
libgfortran/io/list_read.c
libgfortran/io/transfer.c
libgfortran/io/write.c
libgfortran/io/write_float.def
libgfortran/libgfortran.h
libgfortran/runtime/error.c

index 5412835..2a28f84 100644 (file)
@@ -1,3 +1,21 @@
+2013-03-19  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * libgfortran.h: Include stdbool.h.
+       (enum try): Remove.
+       (notify_std): Change return type to bool.
+       * intrinsics/chmod.c: Don't include stdbool.h.
+       * intrinsics/execute_command_line.c: Likewise.
+       * io/format.c: Likewise.
+       * io/list_read.c (nml_parse_qualifier): Change return type to bool.
+       (nml_read_obj): Likewise.
+       (nml_get_obj_data): Likewise.
+       * io/transfer.c (read_block_form): Fix comment.
+       (write_buf): Change return type to bool.
+       * io/write.c: Don't include stdbool.h.
+       * io/write_float.def (output_float): Change return type to bool.
+       (output_float_FMT_G_ ## x): Change type of result variable.
+       * runtime/error.c (notify_std): Change return type to bool.
+
 2013-03-11  Tobias Burnus  <burnus@net-b.de>
 
        * io/transfer.c (read_block_direct): Correct condition.
index 363d803..eca3e6a 100644 (file)
@@ -27,7 +27,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #if defined(HAVE_SYS_STAT_H)
 
-#include <stdbool.h>
 #include <string.h>    /* For memcpy. */
 #include <sys/stat.h>  /* For stat, chmod and umask.  */
 
index fa6ea9f..fd9d483 100644 (file)
@@ -25,7 +25,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "libgfortran.h"
 #include <string.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 #ifdef HAVE_UNISTD_H
index ff3c680..c64596b 100644 (file)
@@ -31,7 +31,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include "format.h"
 #include <ctype.h>
 #include <string.h>
-#include <stdbool.h>
 #include <stdlib.h>
 
 
index fb8a841..22125be 100644 (file)
@@ -2052,7 +2052,7 @@ calls:
 /* Inputs a rank-dimensional qualifier, which can contain
    singlets, doublets, triplets or ':' with the standard meanings.  */
 
-static try
+static bool
 nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
                     array_loop_spec *ls, int rank, char *parse_err_msg,
                     size_t parse_err_msg_size,
@@ -2079,7 +2079,7 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
   /* The next character in the stream should be the '('.  */
 
   if ((c = next_char (dtp)) == EOF)
-    return FAILURE;
+    return false;
 
   /* Process the qualifier, by dimension and triplet.  */
 
@@ -2093,7 +2093,7 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
 
          /* Process a potential sign.  */
          if ((c = next_char (dtp)) == EOF)
-           return FAILURE;
+           return false;
          switch (c)
            {
            case '-':
@@ -2112,7 +2112,7 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
          for (;;)
            {
              if ((c = next_char (dtp)) == EOF)
-               return FAILURE;
+               return false;
 
              switch (c)
                {
@@ -2141,7 +2141,7 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
                case ' ': case '\t':
                  eat_spaces (dtp);
                  if ((c = next_char (dtp) == EOF))
-                   return FAILURE;
+                   return false;
                  break;
 
                default:
@@ -2279,11 +2279,11 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
       ls[dim].idx = ls[dim].start;
     }
   eat_spaces (dtp);
-  return SUCCESS;
+  return true;
 
 err_ret:
 
-  return FAILURE;
+  return false;
 }
 
 static namelist_info *
@@ -2467,7 +2467,7 @@ query_return:
    little data to be available.  On the other hand, too much data is an
    error.  */
 
-static try
+static bool
 nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
              namelist_info **pprev_nl, char *nml_err_msg,
              size_t nml_err_msg_size, index_type clow, index_type chigh)
@@ -2485,7 +2485,7 @@ nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
   /* This object not touched in name parsing.  */
 
   if (!nl->touched)
-    return SUCCESS;
+    return true;
 
   dtp->u.p.repeat_count = 0;
   eat_spaces (dtp);
@@ -2532,11 +2532,11 @@ nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
       if (--dtp->u.p.repeat_count <= 0)
        {
          if (dtp->u.p.input_complete)
-           return SUCCESS;
+           return true;
          if (dtp->u.p.at_eol)
            finish_separator (dtp);
          if (dtp->u.p.input_complete)
-           return SUCCESS;
+           return true;
 
          dtp->u.p.saved_type = BT_UNKNOWN;
          free_saved (dtp);
@@ -2590,18 +2590,18 @@ nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
                 cmp = cmp->next)
              {
 
-               if (nml_read_obj (dtp, cmp, (index_type)(pdata - nl->mem_pos),
+               if (!nml_read_obj (dtp, cmp, (index_type)(pdata - nl->mem_pos),
                                  pprev_nl, nml_err_msg, nml_err_msg_size,
-                                 clow, chigh) == FAILURE)
+                                 clow, chigh))
                  {
                    free (obj_name);
-                   return FAILURE;
+                   return false;
                  }
 
                if (dtp->u.p.input_complete)
                  {
                    free (obj_name);
-                   return SUCCESS;
+                   return true;
                  }
              }
 
@@ -2625,7 +2625,7 @@ nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
       if (dtp->u.p.nml_read_error)
        {
          dtp->u.p.expanded_read = 0;
-         return SUCCESS;
+         return true;
        }
 
       if (dtp->u.p.saved_type == BT_UNKNOWN)
@@ -2711,11 +2711,11 @@ incr_idx:
                "Repeat count too large for namelist object %s", nl->var_name);
       goto nml_err_ret;
     }
-  return SUCCESS;
+  return true;
 
 nml_err_ret:
 
-  return FAILURE;
+  return false;
 }
 
 /* Parses the object name, including array and substring qualifiers.  It
@@ -2725,7 +2725,7 @@ nml_err_ret:
    touched.  nml_read_obj is called at the end and this reads the data in
    the manner specified by the object name.  */
 
-static try
+static bool
 nml_get_obj_data (st_parameter_dt *dtp, namelist_info **pprev_nl,
                  char *nml_err_msg, size_t nml_err_msg_size)
 {
@@ -2743,20 +2743,20 @@ nml_get_obj_data (st_parameter_dt *dtp, namelist_info **pprev_nl,
 
   eat_separator (dtp);
   if (dtp->u.p.input_complete)
-    return SUCCESS;
+    return true;
 
   if (dtp->u.p.at_eol)
     finish_separator (dtp);
   if (dtp->u.p.input_complete)
-    return SUCCESS;
+    return true;
 
   if ((c = next_char (dtp)) == EOF)
-    return FAILURE;
+    return false;
   switch (c)
     {
     case '=':
       if ((c = next_char (dtp)) == EOF)
-       return FAILURE;
+       return false;
       if (c != '?')
        {
          snprintf (nml_err_msg, nml_err_msg_size, 
@@ -2764,11 +2764,11 @@ nml_get_obj_data (st_parameter_dt *dtp, namelist_info **pprev_nl,
          goto nml_err_ret;
        }
       nml_query (dtp, '=');
-      return SUCCESS;
+      return true;
 
     case '?':
       nml_query (dtp, '?');
-      return SUCCESS;
+      return true;
 
     case '$':
     case '&':
@@ -2781,7 +2781,7 @@ nml_get_obj_data (st_parameter_dt *dtp, namelist_info **pprev_nl,
        }
     case '/':
       dtp->u.p.input_complete = 1;
-      return SUCCESS;
+      return true;
 
     default :
       break;
@@ -2806,7 +2806,7 @@ get_name:
       if (!is_separator (c))
        push_char (dtp, tolower(c));
       if ((c = next_char (dtp)) == EOF)
-       return FAILURE;
+       return false;
     } while (!( c=='=' || c==' ' || c=='\t' || c =='(' || c =='%' ));
 
   unget_char (dtp, c);
@@ -2866,9 +2866,9 @@ get_name:
   if (c == '(' && nl->var_rank)
     {
       parsed_rank = 0;
-      if (nml_parse_qualifier (dtp, nl->dim, nl->ls, nl->var_rank,
+      if (!nml_parse_qualifier (dtp, nl->dim, nl->ls, nl->var_rank,
                               nml_err_msg, nml_err_msg_size, 
-                              &parsed_rank) == FAILURE)
+                              &parsed_rank))
        {
          char *nml_err_msg_end = strchr (nml_err_msg, '\0');
          snprintf (nml_err_msg_end,
@@ -2882,7 +2882,7 @@ get_name:
       qualifier_flag = 1;
 
       if ((c = next_char (dtp)) == EOF)
-       return FAILURE;
+       return false;
       unget_char (dtp, c);
     }
   else if (nl->var_rank > 0)
@@ -2908,7 +2908,7 @@ get_name:
 
       component_flag = 1;
       if ((c = next_char (dtp)) == EOF)
-       return FAILURE;
+       return false;
       goto get_name;
     }
 
@@ -2923,9 +2923,8 @@ get_name:
       descriptor_dimension chd[1] = { {1, clow, nl->string_length} };
       array_loop_spec ind[1] = { {1, clow, nl->string_length, 1} };
 
-      if (nml_parse_qualifier (dtp, chd, ind, -1, nml_err_msg, 
-                              nml_err_msg_size, &parsed_rank)
-         == FAILURE)
+      if (!nml_parse_qualifier (dtp, chd, ind, -1, nml_err_msg, 
+                               nml_err_msg_size, &parsed_rank))
        {
          char *nml_err_msg_end = strchr (nml_err_msg, '\0');
          snprintf (nml_err_msg_end,
@@ -2946,7 +2945,7 @@ get_name:
        }
 
       if ((c = next_char (dtp)) == EOF)
-       return FAILURE;
+       return false;
       unget_char (dtp, c);
     }
 
@@ -2978,15 +2977,15 @@ get_name:
 
   eat_separator (dtp);
   if (dtp->u.p.input_complete)
-    return SUCCESS;
+    return true;
 
   if (dtp->u.p.at_eol)
     finish_separator (dtp);
   if (dtp->u.p.input_complete)
-    return SUCCESS;
+    return true;
 
   if ((c = next_char (dtp)) == EOF)
-    return FAILURE;
+    return false;
 
   if (c != '=')
     {
@@ -3013,15 +3012,15 @@ get_name:
        nl = first_nl;
     }
 
-  if (nml_read_obj (dtp, nl, 0, pprev_nl, nml_err_msg, nml_err_msg_size,
-                   clow, chigh) == FAILURE)
+  if (!nml_read_obj (dtp, nl, 0, pprev_nl, nml_err_msg, nml_err_msg_size,
+                   clow, chigh))
     goto nml_err_ret;
 
-  return SUCCESS;
+  return true;
 
 nml_err_ret:
 
-  return FAILURE;
+  return false;
 }
 
 /* Entry point for namelist input.  Goes through input until namelist name
@@ -3104,8 +3103,7 @@ find_nml_name:
 
   while (!dtp->u.p.input_complete)
     {
-      if (nml_get_obj_data (dtp, &prev_nl, nml_err_msg, sizeof nml_err_msg)
-                           == FAILURE)
+      if (!nml_get_obj_data (dtp, &prev_nl, nml_err_msg, sizeof nml_err_msg))
        {
          if (dtp->u.p.current_unit->unit_number != options.stdin_unit)
            goto nml_err_ret;
index d97a325..6fa954c 100644 (file)
@@ -401,7 +401,7 @@ read_sf (st_parameter_dt *dtp, int * length)
 
 
 /* Function for reading the next couple of bytes from the current
-   file, advancing the current position. We return FAILURE on end of record or
+   file, advancing the current position. We return NULL on end of record or
    end of file. This function is only for formatted I/O, unformatted uses
    read_block_direct.
 
@@ -774,7 +774,7 @@ write_block (st_parameter_dt *dtp, int length)
    called for unformatted files.  There are three cases to consider:
    Stream I/O, unformatted direct, unformatted sequential.  */
 
-static try
+static bool
 write_buf (st_parameter_dt *dtp, void *buf, size_t nbytes)
 {
 
@@ -790,12 +790,12 @@ write_buf (st_parameter_dt *dtp, void *buf, size_t nbytes)
       if (unlikely (have_written < 0))
        {
          generate_error (&dtp->common, LIBERROR_OS, NULL);
-         return FAILURE;
+         return false;
        }
 
       dtp->u.p.current_unit->strm_pos += (gfc_offset) have_written; 
 
-      return SUCCESS;
+      return true;
     }
 
   /* Unformatted direct access.  */
@@ -805,23 +805,23 @@ write_buf (st_parameter_dt *dtp, void *buf, size_t nbytes)
       if (unlikely (dtp->u.p.current_unit->bytes_left < (gfc_offset) nbytes))
        {
          generate_error (&dtp->common, LIBERROR_DIRECT_EOR, NULL);
-         return FAILURE;
+         return false;
        }
 
       if (buf == NULL && nbytes == 0)
-       return SUCCESS;
+       return true;
 
       have_written = swrite (dtp->u.p.current_unit->s, buf, nbytes); 
       if (unlikely (have_written < 0))
        {
          generate_error (&dtp->common, LIBERROR_OS, NULL);
-         return FAILURE;
+         return false;
        }
 
       dtp->u.p.current_unit->strm_pos += (gfc_offset) have_written;
       dtp->u.p.current_unit->bytes_left -= (gfc_offset) have_written;
 
-      return SUCCESS;
+      return true;
     }
 
   /* Unformatted sequential.  */
@@ -854,7 +854,7 @@ write_buf (st_parameter_dt *dtp, void *buf, size_t nbytes)
       if (unlikely (to_write_subrecord < 0))
        {
          generate_error (&dtp->common, LIBERROR_OS, NULL);
-         return FAILURE;
+         return false;
        }
 
       dtp->u.p.current_unit->strm_pos += (gfc_offset) to_write_subrecord; 
@@ -871,9 +871,9 @@ write_buf (st_parameter_dt *dtp, void *buf, size_t nbytes)
   if (unlikely (short_record))
     {
       generate_error (&dtp->common, LIBERROR_SHORT_RECORD, NULL);
-      return FAILURE;
+      return false;
     }
-  return SUCCESS;
+  return true;
 }
 
 
index f17528e..153da2e 100644 (file)
@@ -31,7 +31,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include <string.h>
 #include <ctype.h>
 #include <stdlib.h>
-#include <stdbool.h>
 #include <errno.h>
 #define star_fill(p, n) memset(p, '*', n)
 
index 5b76fd5..a157f0b 100644 (file)
@@ -110,7 +110,7 @@ determine_precision (st_parameter_dt * dtp, const fnode * f, int len)
 
 /* Output a real number according to its format which is FMT_G free.  */
 
-static try
+static bool
 output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
              int nprinted, int precision, int sign_bit, bool zero_flag)
 {
@@ -244,13 +244,13 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
        {
          generate_error (&dtp->common, LIBERROR_FORMAT, "Precision not "
                          "greater than zero in format specifier 'E' or 'D'");
-         return FAILURE;
+         return false;
        }
       if (p <= -d || p >= d + 2)
        {
          generate_error (&dtp->common, LIBERROR_FORMAT, "Scale factor "
                          "out of range in format specifier 'E' or 'D'");
-         return FAILURE;
+         return false;
        }
 
       if (!zero_flag)
@@ -532,7 +532,7 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
   /* Create the ouput buffer.  */
   out = write_block (dtp, w);
   if (out == NULL)
-    return FAILURE;
+    return false;
 
   /* Check the value fits in the specified field width.  */
   if (nblanks < 0 || edigits == -1 || w == 1 || (w == 2 && sign != S_NONE))
@@ -541,10 +541,10 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
        {
          gfc_char4_t *out4 = (gfc_char4_t *) out;
          memset4 (out4, '*', w);
-         return FAILURE;
+         return false;
        }
       star_fill (out, w);
-      return FAILURE;
+      return false;
     }
 
   /* See if we have space for a zero before the decimal point.  */
@@ -652,7 +652,7 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
          memset4 (out4, ' ' , nblanks);
          dtp->u.p.no_leading_blank = 0;
        }
-      return SUCCESS;
+      return true;
     } /* End of character(kind=4) internal unit code.  */
 
   /* Pad to full field width.  */
@@ -745,7 +745,7 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
       dtp->u.p.no_leading_blank = 0;
     }
 
-  return SUCCESS;
+  return true;
 }
 
 
@@ -995,7 +995,7 @@ output_float_FMT_G_ ## x (st_parameter_dt *dtp, const fnode *f, \
   int ubound, lbound;\
   char *p, pad = ' ';\
   int save_scale_factor, nb = 0;\
-  try result;\
+  bool result;\
   int nprinted, precision;\
 \
   save_scale_factor = dtp->u.p.scale_factor;\
@@ -1087,7 +1087,7 @@ output_float_FMT_G_ ## x (st_parameter_dt *dtp, const fnode *f, \
       p = write_block (dtp, nb);\
       if (p == NULL)\
        return;\
-      if (result == FAILURE)\
+      if (!result)\
         pad = '*';\
       if (unlikely (is_char4_unit (dtp)))\
        {\
index f54edc0..56c9871 100644 (file)
@@ -43,6 +43,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include <stddef.h>
 #include <float.h>
 #include <stdarg.h>
+#include <stdbool.h>
 
 #if HAVE_COMPLEX_H
 /* Must appear before math.h on VMS systems.  */
@@ -561,10 +562,6 @@ typedef enum
 { NOTIFICATION_SILENT, NOTIFICATION_WARNING, NOTIFICATION_ERROR }
 notification;
 
-/* This is returned by notify_std and several io functions.  */
-typedef enum
-{ SUCCESS = 1, FAILURE }
-try;
 
 /* The filename and line number don't go inside the globals structure.
    They are set by the rest of the program and must be linked to.  */
@@ -732,7 +729,7 @@ iexport_proto(generate_error);
 extern void generate_warning (st_parameter_common *, const char *);
 internal_proto(generate_warning);
 
-extern try notify_std (st_parameter_common *, int, const char *);
+extern bool notify_std (st_parameter_common *, int, const char *);
 internal_proto(notify_std);
 
 extern notification notification_std(int);
index f09fa20..5f04819 100644 (file)
@@ -586,17 +586,17 @@ notification_std (int std)
    feature.  An error/warning will be issued if the currently selected
    standard does not contain the requested bits.  */
 
-try
+bool
 notify_std (st_parameter_common *cmp, int std, const char * message)
 {
   int warning;
 
   if (!compile_options.pedantic)
-    return SUCCESS;
+    return true;
 
   warning = compile_options.warn_std & std;
   if ((compile_options.allow_std & std) != 0 && !warning)
-    return SUCCESS;
+    return true;
 
   if (!warning)
     {
@@ -614,5 +614,5 @@ notify_std (st_parameter_common *cmp, int std, const char * message)
       estr_write (message);
       estr_write ("\n");
     }
-  return FAILURE;
+  return false;
 }