m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch: use more asserts


From: Eric Blake
Subject: branch: use more asserts
Date: Mon, 05 Nov 2007 20:39:12 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070728 Thunderbird/2.0.0.6 Mnenhy/0.7.5.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

The branch had a lot of M4ERROR(("INTERNAL ERROR:...")) messages; now that
configure supports --disable-assert, I thought I'd convert those to
asserts, similar to how things are done on head (besides, if I ever make
up my mind on porting gettext i18n support into the 1.4.x branch, it makes
no sense to translate 'impossible' messages like INTERNAL ERROR).

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHL+Hf84KuGfSFAYARAiyiAJ98uISzn6X0OU5IXI4Ru6m6K3ecsgCeL6M8
+m20NWFBs2RNzbD4Ck1ZUv8=
=E2jK
-----END PGP SIGNATURE-----
>From 892295b5672cc38a55b1a727fc11297d145cfe18 Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Mon, 5 Nov 2007 20:37:52 -0700
Subject: [PATCH] Use assert, rather than INTERNAL ERROR.

* src/m4.h: Include <assert.h>.
* src/builtin.c (m4_dumpdef, define_macro, m4_defn): Use assert.
* src/debug.c (trace_pre): Likewise.
* src/eval.c (evaluate, cmp_term, shift_term, mult_term):
Likewise.
* src/freeze.c (produce_frozen_state): Likewise.
* src/input.c (push_string_init, pop_input, init_macro_token)
(peek_input, next_char_1, set_word_regexp): Likewise.
* src/m4.c (main): Likewise.
* src/macro.c (expand_token, expand_argument, call_macro):
Likewise.
* src/output.c (make_diversion): Likewise.
* src/symtab.c (symtab_init): Likewise.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog     |   15 +++++++++++++++
 src/builtin.c |   26 +++++++++++---------------
 src/debug.c   |    6 ++----
 src/eval.c    |   12 ++++--------
 src/freeze.c  |    6 ++----
 src/input.c   |   37 ++++++++-----------------------------
 src/m4.c      |    2 +-
 src/m4.h      |    1 +
 src/macro.c   |    9 +++------
 src/output.c  |    2 +-
 src/symtab.c  |   10 ++--------
 11 files changed, 50 insertions(+), 76 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4ecf890..bfd5de9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2007-11-05  Eric Blake  <address@hidden>
 
+       Use assert, rather than INTERNAL ERROR.
+       * src/m4.h: Include <assert.h>.
+       * src/builtin.c (m4_dumpdef, define_macro, m4_defn): Use assert.
+       * src/debug.c (trace_pre): Likewise.
+       * src/eval.c (evaluate, cmp_term, shift_term, mult_term):
+       Likewise.
+       * src/freeze.c (produce_frozen_state): Likewise.
+       * src/input.c (push_string_init, pop_input, init_macro_token)
+       (peek_input, next_char_1, set_word_regexp): Likewise.
+       * src/m4.c (main): Likewise.
+       * src/macro.c (expand_token, expand_argument, call_macro):
+       Likewise.
+       * src/output.c (make_diversion): Likewise.
+       * src/symtab.c (symtab_init): Likewise.
+
        Use build-aux directory.
        * configure.ac (PACKAGE, VERSION): Delete, since Automake does
        this now.
diff --git a/src/builtin.c b/src/builtin.c
index 0b7f5c1..280344f 100644
--- a/src/builtin.c
+++ b/src/builtin.c
@@ -364,7 +364,7 @@ set_macro_sequence (const char *regexp)
 {
   const char *msg;
 
-  if (! regexp)
+  if (!regexp)
     regexp = DEFAULT_MACRO_SEQUENCE;
   else if (regexp[0] == '\0')
     {
@@ -697,8 +697,7 @@ define_macro (int argc, token_data **argv, symbol_lookup 
mode)
       break;
 
     default:
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: bad token data type in define_macro ()"));
+      assert (!"define_macro");
       abort ();
     }
 }
@@ -900,16 +899,14 @@ m4_dumpdef (struct obstack *obs, int argc, token_data 
**argv)
          bp = find_builtin_by_addr (SYMBOL_FUNC (data.base[0]));
          if (bp == NULL)
            {
-             M4ERROR ((warning_status, 0, "\
-INTERNAL ERROR: builtin not found in builtin table"));
+             assert (!"m4_dumpdef");
              abort ();
            }
          DEBUG_PRINT1 ("<%s>\n", bp->name);
          break;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: bad token data type in m4_dumpdef ()"));
+         assert (!"m4_dumpdef");
          abort ();
          break;
        }
@@ -946,7 +943,7 @@ m4_builtin (struct obstack *obs, int argc, token_data 
**argv)
   else
     {
       int i;
-      if (! bp->groks_macro_args)
+      if (!bp->groks_macro_args)
        for (i = 2; i < argc; i++)
          if (TOKEN_DATA_TYPE (argv[i]) != TOKEN_TEXT)
            {
@@ -987,7 +984,7 @@ m4_indir (struct obstack *obs, int argc, token_data **argv)
   else
     {
       int i;
-      if (! SYMBOL_MACRO_ARGS (s))
+      if (!SYMBOL_MACRO_ARGS (s))
        for (i = 2; i < argc; i++)
          if (TOKEN_DATA_TYPE (argv[i]) != TOKEN_TEXT)
            {
@@ -1042,8 +1039,7 @@ builtin `%s' requested by frozen file is not supported", 
ARG (i)));
          break;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: bad symbol type in m4_defn ()"));
+         assert (!"m4_defn");
          abort ();
        }
     }
@@ -1061,13 +1057,13 @@ builtin `%s' requested by frozen file is not 
supported", ARG (i)));
 # define M4SYSVAL_TERMSIGBITS(status)                    \
    (WIFSIGNALED (status) ? WTERMSIG (status) << 8 : 0)
 
-#else /* ! UNIX && ! defined WEXITSTATUS */
+#else /* !UNIX && !defined WEXITSTATUS */
 /* Platforms such as mingw do not support the notion of reporting
    which signal terminated a process.  Furthermore if WEXITSTATUS was
    not provided, then the exit value is in the low eight bits.  */
 # define M4SYSVAL_EXITBITS(status) status
 # define M4SYSVAL_TERMSIGBITS(status) 0
-#endif /* ! UNIX && ! defined WEXITSTATUS */
+#endif /* !UNIX && !defined WEXITSTATUS */
 
 /* Fallback definitions if <stdlib.h> or <sys/wait.h> are inadequate.  */
 #ifndef WEXITSTATUS
@@ -1956,7 +1952,7 @@ m4_translit (struct obstack *obs, int argc, token_data 
**argv)
      hence the found map.  */
   for ( ; (ch = *from) != '\0'; from++)
     {
-      if (! found[ch])
+      if (!found[ch])
        {
          found[ch] = 1;
          map[ch] = *to;
@@ -1967,7 +1963,7 @@ m4_translit (struct obstack *obs, int argc, token_data 
**argv)
 
   for (data = ARG (1); (ch = *data) != '\0'; data++)
     {
-      if (! found[ch])
+      if (!found[ch])
        obstack_1grow (obs, ch);
       else if (map[ch])
        obstack_1grow (obs, map[ch]);
diff --git a/src/debug.c b/src/debug.c
index c94a746..998ccb9 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -398,16 +398,14 @@ trace_pre (const char *name, int id, int argc, token_data 
**argv)
              bp = find_builtin_by_addr (TOKEN_DATA_FUNC (argv[i]));
              if (bp == NULL)
                {
-                 M4ERROR ((warning_status, 0, "\
-INTERNAL ERROR: builtin not found in builtin table! (trace_pre ())"));
+                 assert (!"trace_pre");
                  abort ();
                }
              trace_format ("<%s>", bp->name);
              break;
 
            default:
-             M4ERROR ((warning_status, 0,
-                       "INTERNAL ERROR: bad token data type (trace_pre ())"));
+             assert (!"trace_pre");
              abort ();
            }
 
diff --git a/src/eval.c b/src/eval.c
index d35364c..7abc7ab 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -352,8 +352,7 @@ evaluate (const char *expr, int32_t *val)
       break;
 
     default:
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: bad error code in evaluate ()"));
+      assert (!"evaluate");
       abort ();
     }
 
@@ -584,8 +583,7 @@ cmp_term (eval_token et, int32_t *v1)
          break;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: bad comparison operator in cmp_term ()"));
+         assert (!"cmp_term");
          abort ();
        }
     }
@@ -638,8 +636,7 @@ shift_term (eval_token et, int32_t *v1)
          break;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: bad shift operator in shift_term ()"));
+         assert (!"shift_term");
          abort ();
        }
     }
@@ -735,8 +732,7 @@ mult_term (eval_token et, int32_t *v1)
          break;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: bad operator in mult_term ()"));
+         assert (!"mult_term");
          abort ();
        }
     }
diff --git a/src/freeze.c b/src/freeze.c
index 18280f7..2858e64 100644
--- a/src/freeze.c
+++ b/src/freeze.c
@@ -115,8 +115,7 @@ produce_frozen_state (const char *name)
              bp = find_builtin_by_addr (SYMBOL_FUNC (sym));
              if (bp == NULL)
                {
-                 M4ERROR ((warning_status, 0, "\
-INTERNAL ERROR: builtin not found in builtin table!"));
+                 assert (!"produce_frozen_state");
                  abort ();
                }
              xfprintf (file, "F%d,%d\n",
@@ -132,8 +131,7 @@ INTERNAL ERROR: builtin not found in builtin table!"));
              break;
 
            default:
-             M4ERROR ((warning_status, 0, "\
-INTERNAL ERROR: bad token data type in freeze_one_symbol ()"));
+             assert (!"produce_frozen_state");
              abort ();
              break;
            }
diff --git a/src/input.c b/src/input.c
index b81d086..23903f3 100644
--- a/src/input.c
+++ b/src/input.c
@@ -241,13 +241,7 @@ push_macro (builtin_func *func)
 struct obstack *
 push_string_init (void)
 {
-  if (next != NULL)
-    {
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: recursive push_string!"));
-      abort ();
-    }
-
+  assert (next == NULL);
   next = (input_block *) obstack_alloc (current_input,
                                        sizeof (struct input_block));
   next->type = INPUT_STRING;
@@ -357,8 +351,7 @@ pop_input (void)
       break;
 
     default:
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: input stack botch in pop_input ()"));
+      assert (!"pop_input");
       abort ();
     }
   obstack_free (current_input, isp);
@@ -411,13 +404,7 @@ pop_wrapup (void)
 static void
 init_macro_token (token_data *td)
 {
-  if (isp->type != INPUT_MACRO)
-    {
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: bad call to init_macro_token ()"));
-      abort ();
-    }
-
+  assert (isp->type == INPUT_MACRO);
   TOKEN_DATA_TYPE (td) = TOKEN_FUNC;
   TOKEN_DATA_FUNC (td) = isp->u.func;
 }
@@ -463,8 +450,7 @@ peek_input (void)
          return CHAR_MACRO;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: input stack botch in peek_input ()"));
+         assert (!"peek_input");
          abort ();
        }
       block = block->prev;
@@ -541,8 +527,7 @@ next_char_1 (void)
          return CHAR_MACRO;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: input stack botch in next_char ()"));
+         assert (!"next_char_1");
          abort ();
        }
 
@@ -782,15 +767,9 @@ set_word_regexp (const char *regexp)
      Can't rely on struct assigns working, so redo the compilation.  */
   regfree (&word_regexp);
   msg = re_compile_pattern (regexp, strlen (regexp), &word_regexp);
+  assert (!msg);
   re_set_registers (&word_regexp, &regs, regs.num_regs, regs.start, regs.end);
 
-  if (msg != NULL)
-    {
-      M4ERROR ((EXIT_FAILURE, 0,
-               "INTERNAL ERROR: expression recompilation `%s': %s",
-               regexp, msg));
-    }
-
   default_word_regexp = false;
 
   if (word_start == NULL)
@@ -923,10 +902,10 @@ next_token (token_data *td, int *line, const char *caller)
       orig_text = (char *) obstack_finish (&token_stack);
 
       if (regs.start[1] != -1)
-       obstack_grow (&token_stack,orig_text + regs.start[1],
+       obstack_grow (&token_stack, orig_text + regs.start[1],
                      regs.end[1] - regs.start[1]);
       else
-       obstack_grow (&token_stack, orig_text,regs.end[0]);
+       obstack_grow (&token_stack, orig_text, regs.end[0]);
 
       type = TOKEN_WORD;
     }
diff --git a/src/m4.c b/src/m4.c
index 401ce4b..38e26e9 100644
--- a/src/m4.c
+++ b/src/m4.c
@@ -568,7 +568,7 @@ main (int argc, char *const *argv, char *const *envp)
          break;
 
        default:
-         M4ERROR ((0, 0, "INTERNAL ERROR: bad code in deferred arguments"));
+         assert (!"main");
          abort ();
        }
 
diff --git a/src/m4.h b/src/m4.h
index b4b9b85..f1ff0c8 100644
--- a/src/m4.h
+++ b/src/m4.h
@@ -25,6 +25,7 @@
 
 #include <config.h>
 
+#include <assert.h>
 #include <ctype.h>
 #include <errno.h>
 #include <stdbool.h>
diff --git a/src/macro.c b/src/macro.c
index 0034789..76f9276 100644
--- a/src/macro.c
+++ b/src/macro.c
@@ -119,8 +119,7 @@ expand_token (struct obstack *obs, token_type t, token_data 
*td, int line)
       break;
 
     default:
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: bad token type in expand_token ()"));
+      assert (!"expand_token");
       abort ();
     }
 }
@@ -211,8 +210,7 @@ expand_argument (struct obstack *obs, token_data *argp, 
const char *caller)
          break;
 
        default:
-         M4ERROR ((warning_status, 0,
-                   "INTERNAL ERROR: bad token type in expand_argument ()"));
+         assert (!"expand_argument");
          abort ();
        }
 
@@ -284,8 +282,7 @@ call_macro (symbol *sym, int argc, token_data **argv,
       break;
 
     default:
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: bad symbol type in call_macro ()"));
+      assert (!"call_macro");
       abort ();
     }
 }
diff --git a/src/output.c b/src/output.c
index f88fc4b..5873d8c 100644
--- a/src/output.c
+++ b/src/output.c
@@ -593,7 +593,7 @@ make_diversion (int divnum)
       if (!output_diversion->size && !output_diversion->u.file)
        {
          if (!gl_oset_remove (diversion_table, output_diversion))
-           error (EXIT_FAILURE, 0, "INTERNAL ERROR: make_diversion failed");
+           assert (false);
          output_diversion->u.next = free_list;
          output_diversion->used = 0;
          free_list = output_diversion;
diff --git a/src/symtab.c b/src/symtab.c
index 8195e2e..d65d4c5 100644
--- a/src/symtab.c
+++ b/src/symtab.c
@@ -107,12 +107,7 @@ symtab_init (void)
     s[i] = NULL;
 
 #ifdef DEBUG_SYM
-  {
-    int e = atexit(show_profile);
-    if (e != 0)
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: unable to show symtab profile"));
-  }
+  atexit (show_profile); /* Ignore failure, since this is debug code.  */
 #endif /* DEBUG_SYM */
 }
 
@@ -307,8 +302,7 @@ lookup_symbol (const char *name, symbol_lookup mode)
       return NULL;
 
     default:
-      M4ERROR ((warning_status, 0,
-               "INTERNAL ERROR: invalid mode to symbol_lookup ()"));
+      assert (!"symbol_lookup");
       abort ();
     }
 }
-- 
1.5.3.2


reply via email to

[Prev in Thread] Current Thread [Next in Thread]