* bootstrap.conf (gnulib_modules): Add assert module.
* src/system.h (aver): Define as assert, and summarize the
discussion on this issue.
(cherry picked from commit
ca01f454f01645533622a59ef0df335ee07679e5)
2009-12-14 Joel E. Denny <jdenny@clemson.edu>
+ Enable assertion output and --disable-assert for configure.
+ * bootstrap.conf (gnulib_modules): Add assert module.
+ * src/system.h (aver): Define as assert, and summarize the
+ discussion on this issue.
+
+2009-12-14 Joel E. Denny <jdenny@clemson.edu>
+
Expand GLR acronym in summary of Bison.
Based on discussion with Akim Demaille starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
# gnulib modules used by this package.
gnulib_modules='
- announce-gen argmatch config-h c-strcase configmake dirname error
- extensions fopen-safer gendocs getopt-gnu gettext git-version-gen hash
- inttypes javacomp-script javaexec-script maintainer-makefile malloc
- mbswidth obstack quote quotearg stdbool stpcpy strerror strtoul
- strverscmp unistd unistd-safer unlocked-io update-copyright unsetenv
- verify warnings xalloc xalloc-die xstrndup
+ announce-gen argmatch assert config-h c-strcase configmake dirname
+ error extensions fopen-safer gendocs getopt-gnu gettext
+ git-version-gen hash inttypes javacomp-script javaexec-script
+ maintainer-makefile malloc mbswidth obstack quote quotearg stdbool
+ stpcpy strerror strtoul strverscmp unistd unistd-safer unlocked-io
+ update-copyright unsetenv verify warnings xalloc xalloc-die xstrndup
'
# Additional xgettext options to use. Use "\\\newline" to break lines.
00gnulib.m4
absolute-header.m4
argmatch.m4
+assert.m4
config-h.m4
dirname.m4
dos.m4
/00gnulib.m4
/absolute-header.m4
/argmatch.m4
+/assert.m4
/config-h.m4
/dirname.m4
/dos.m4
| Assertions. |
`-------------*/
-/* <assert.h>'s assertions are too heavyweight, and can be disabled
- too easily, so use aver rather than assert. See discussions at
+/* In the past, Bison defined aver to simply invoke abort in the case of
+ a failed assertion. The rationale was that <assert.h>'s assertions
+ were too heavyweight and could be disabled too easily. See
+ discussions at
<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00080.html>
<http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00111.html>.
+
+ However, normal assert output can be helpful during development and
+ in bug reports from users. Moreover, it's not clear now that
+ <assert.h>'s assertions are significantly heavyweight. Finally, if
+ users want to experiment with disabling assertions, it's debatable
+ whether it's our responsibility to stop them. See discussion
+ starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00013.html>.
+
+ For now, we use assert but we call it aver throughout Bison in case
+ we later wish to try another scheme.
*/
-static inline void
-aver (bool assertion)
-{
- if (! assertion)
- abort ();
-}
+#include <assert.h>
+#define aver assert
/*-----------.