mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-12 05:43:03 +00:00
Fix some porting glitches found by Nelson H. F. Beebe.
* lib/abitset.c (abitset_resize): Rewrite to avoid warnings from compilers that don't understand that abort () does not return. * src/state.c (transitions_to): Likewise. * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that '#include <cstdlib>' works. * src/system.h (INT8_MIN, INT16_MIN, INT32_MIN, INT8_MAX): (INT16_MAX, UINT8_MAX, INT32_MAX, UINT16_MAX, UINT32_MAX): #undef if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901, for the benefit of some pre-C99 compilers.
This commit is contained in:
14
src/state.c
14
src/state.c
@@ -1,6 +1,7 @@
|
||||
/* Type definitions for nondeterministic finite state machine for Bison.
|
||||
|
||||
Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This file is part of Bison, the GNU Compiler Compiler.
|
||||
|
||||
@@ -58,10 +59,13 @@ state *
|
||||
transitions_to (transitions *shifts, symbol_number sym)
|
||||
{
|
||||
int j;
|
||||
for (j = 0; j < shifts->num; j++)
|
||||
if (TRANSITION_SYMBOL (shifts, j) == sym)
|
||||
return shifts->states[j];
|
||||
abort ();
|
||||
for (j = 0; ; j++)
|
||||
{
|
||||
if (shifts->num <= j)
|
||||
abort ();
|
||||
if (TRANSITION_SYMBOL (shifts, j) == sym)
|
||||
return shifts->states[j];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
20
src/system.h
20
src/system.h
@@ -1,7 +1,7 @@
|
||||
/* System-dependent definitions for Bison.
|
||||
|
||||
Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software
|
||||
Foundation, Inc.
|
||||
Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 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
|
||||
@@ -20,6 +20,22 @@
|
||||
#ifndef BISON_SYSTEM_H
|
||||
#define BISON_SYSTEM_H
|
||||
|
||||
/* flex 2.5.31 gratutiously defines macros like INT8_MIN. But this
|
||||
runs afoul of pre-C99 compilers that have <inttypes.h> or
|
||||
<stdint.h>, which are included below if available. It also runs
|
||||
afoul of pre-C99 compilers that define these macros in <limits.h>. */
|
||||
#if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901
|
||||
# undef INT8_MIN
|
||||
# undef INT16_MIN
|
||||
# undef INT32_MIN
|
||||
# undef INT8_MAX
|
||||
# undef INT16_MAX
|
||||
# undef UINT8_MAX
|
||||
# undef INT32_MAX
|
||||
# undef UINT16_MAX
|
||||
# undef UINT32_MAX
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
Reference in New Issue
Block a user