]> git.saurik.com Git - bison.git/blobdiff - lib/argmatch.h
(struniq_assert): Now returns void, and aborts if the assertion is false.
[bison.git] / lib / argmatch.h
index dd2a65560f0c085d00c55ddbca8a401314cbefc9..eb91f51aab106da32d76bf180bf161775488603d 100644 (file)
@@ -1,5 +1,5 @@
 /* argmatch.h -- definitions and prototypes for argmatch.c
-   Copyright (C) 1990, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    cost, since it will be statically evalauted to `assert (0)' or
    `assert (1)'.  Unfortunately there is no -Wassert-0. */
 
-# undef ARRAY_CARDINALITY
 # define ARRAY_CARDINALITY(Array) (sizeof ((Array)) / sizeof (*(Array)))
 
-# define ARGMATCH_ASSERT(Arglist, Vallist)      \
-  assert (ARRAY_CARDINALITY ((Arglist)) == ARRAY_CARDINALITY ((Vallist)) + 1)
+# define ARGMATCH_CONSTRAINT(Arglist, Vallist) \
+  (ARRAY_CARDINALITY ((Arglist)) == ARRAY_CARDINALITY ((Vallist)) + 1)
+# define ARGMATCH_ASSERT(Arglist, Vallist) \
+  assert (ARGMATCH_CONSTRAINT (Arglist, Vallist))
 
 /* Return the index of the element of ARGLIST (NULL terminated) that
    matches with ARG.  If VALLIST is not NULL, then use it to resolve
@@ -104,7 +105,7 @@ int __xargmatch_internal
 
 /* Programmer friendly interface to __xargmatch_internal. */
 
-# define XARGMATCH(Context, Arg, Arglist, Vallist)             \
+# define XARGMATCH(Context, Arg, Arglist, Vallist)                     \
   (Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \
                                   (const char *) (Vallist),    \
                                  sizeof (*(Vallist)),          \
@@ -123,7 +124,7 @@ const char *argmatch_to_argument
           const char *vallist, size_t valsize));
 
 # define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist)                 \
-  argmatch_to_argument ((char const *) &(Value), (Arglist),            \
+  argmatch_to_argument ((Value), (Arglist),            \
                        (const char *) (Vallist), sizeof (*(Vallist)))
 
 #endif /* ARGMATCH_H_ */