mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 23:03:04 +00:00
Port to GCC 2.95. First two problems reported by Michael Deutschmann in
<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00018.html>. * src/parse-gram.y (symbol_declaration): Don't put statements before declarations; it's not portable to C89. * src/scan-code.l (handle_action_at): Likewise. * src/scan-code.l: Always initialize braces_level; the old code left it uninitialized and therefore had undefined behavior. Don't attempt to redefine 'assert', since it runs afoul of systems where standard headers (mistakenly) include <assert.h>. Instead, define and use our own alternative, called 'aver'. * src/reader.c: Don't include assert.h, since we no longer use assert. * src/scan-code.l: Likewise. * src/system.h (assert): Remove, replacing with.... (aver): New function, taking a bool arg. All uses changed. * src/tables.c (pack_vector): Ensure that aver arg is bool, not merely an integer.
This commit is contained in:
20
src/system.h
20
src/system.h
@@ -136,6 +136,21 @@ typedef size_t uintptr_t;
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
|
||||
/*-------------.
|
||||
| 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 ();
|
||||
}
|
||||
|
||||
|
||||
/*-----------.
|
||||
| Obstacks. |
|
||||
`-----------*/
|
||||
@@ -210,11 +225,6 @@ do { \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Assertions. <assert.h>'s assertions are too heavyweight, and can
|
||||
be disabled too easily, so implement it separately here. */
|
||||
#define assert(x) ((void) ((x) || (abort (), 0)))
|
||||
|
||||
|
||||
/*---------------------------------------------.
|
||||
| Debugging memory allocation (must be last). |
|
||||
`---------------------------------------------*/
|
||||
|
||||
Reference in New Issue
Block a user