]> git.saurik.com Git - bison.git/blobdiff - src/system.h
maint: prepare to use date ranges in copyright notices.
[bison.git] / src / system.h
index 57a432d0a7b2fd758ddefb6e6ac17d7b118c3c9d..0bd684f0ad1ddf18bf9a93a6c9cf8735d3c3824e 100644 (file)
@@ -1,7 +1,7 @@
 /* System-dependent definitions for Bison.
 
-   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free
-   Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
+   2010 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
@@ -123,14 +123,26 @@ typedef size_t uintptr_t;
 | Assertions.  |
 `-------------*/
 
-/* <assert.h>'s assertions are too heavyweight, and can be disabled
-   too easily, so use aver rather than assert.  */
-static inline void
-aver (bool assertion)
-{
-  if (! assertion)
-    abort ();
-}
+/* 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.
+*/
+#include <assert.h>
+#define aver assert
 
 
 /*-----------.