]> git.saurik.com Git - bison.git/commitdiff
Fix some porting glitches found by Nelson H. F. Beebe.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 20 Jan 2006 01:59:30 +0000 (01:59 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 20 Jan 2006 01:59:30 +0000 (01:59 +0000)
* 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.

ChangeLog
lib/abitset.c
m4/cxx.m4
src/state.c
src/system.h

index 25a7cdbac63d4c19544d42a199cd1d473f862487..28a4198b534b058a4c1708a0e8bb3e0637e965da 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2006-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 
 2006-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 
+       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.
+
        * bootstrap: Undo changes to gnulib files that autoreconf made.
 
        Minor fixups to get 'make maintainer-check' to work.
        * bootstrap: Undo changes to gnulib files that autoreconf made.
 
        Minor fixups to get 'make maintainer-check' to work.
index ec5bf6a0f1f5ea18c1536bba90e73af9d44e01ce..c573f34aeee7913147a7fc7911aaa1176a0a4571 100644 (file)
@@ -1,5 +1,5 @@
 /* Array bitsets.
 /* Array bitsets.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc.
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
 
    This program is free software; you can redistribute it and/or modify
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
 
    This program is free software; you can redistribute it and/or modify
@@ -37,11 +37,11 @@ static bitset_bindex
 abitset_resize (bitset src ATTRIBUTE_UNUSED,
                bitset_bindex size ATTRIBUTE_UNUSED)
 {
 abitset_resize (bitset src ATTRIBUTE_UNUSED,
                bitset_bindex size ATTRIBUTE_UNUSED)
 {
-    if (BITSET_SIZE_ (src) == size)
-       return size;
-
     /* These bitsets have a fixed size.  */
     /* These bitsets have a fixed size.  */
-    abort ();
+    if (BITSET_SIZE_ (src) != size)
+      abort ();
+
+    return size;
 }
 
 /* Find list of up to NUM bits set in BSET starting from and including
 }
 
 /* Find list of up to NUM bits set in BSET starting from and including
index 71bf8f966853a62218ab7c47ba7c0a53d5fe0f6e..695476d1984d45cb58e12c1b778cfebda1d6b174 100644 (file)
--- a/m4/cxx.m4
+++ b/m4/cxx.m4
@@ -1,7 +1,7 @@
 # -*- Autoconf -*-
 # Sanity-test a C++ compiler.
 #
 # -*- Autoconf -*-
 # Sanity-test a C++ compiler.
 #
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 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
 #
 # 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
@@ -18,7 +18,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301  USA
 
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301  USA
 
-# Written by Paul Eggert <eggert@cs.ucla.edu>.
+# Written by Paul Eggert.
 
 AC_DEFUN([BISON_TEST_FOR_WORKING_CXX_COMPILER],
 [
 
 AC_DEFUN([BISON_TEST_FOR_WORKING_CXX_COMPILER],
 [
@@ -27,7 +27,8 @@ AC_DEFUN([BISON_TEST_FOR_WORKING_CXX_COMPILER],
    [AC_LANG_PUSH([C++])
     AC_RUN_IFELSE(
       [AC_LANG_PROGRAM(
    [AC_LANG_PUSH([C++])
     AC_RUN_IFELSE(
       [AC_LANG_PROGRAM(
-        [#include <iostream>
+        [#include <cstdlib>
+         #include <iostream>
          using namespace std;],
          [std::cerr << "";
           cout << "";])],
          using namespace std;],
          [std::cerr << "";
           cout << "";])],
index d7289a3b5ebc0efb33a7603a01aa989a12d977ee..83e0108f159166d9d6c6adc844a385e6a18fb20b 100644 (file)
@@ -1,6 +1,7 @@
 /* Type definitions for nondeterministic finite state machine for Bison.
 
 /* 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.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -58,10 +59,13 @@ state *
 transitions_to (transitions *shifts, symbol_number sym)
 {
   int j;
 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];
+    }
 }
 
 
 }
 
 
index 74639ec5fa47759d043f1e55ad22999e2749dba4..c1c45b49f2d57ff95ffff20a863c8c78c6d3b2a0 100644 (file)
@@ -1,7 +1,7 @@
 /* System-dependent definitions for Bison.
 
 /* 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
 
    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
 #ifndef BISON_SYSTEM_H
 #define BISON_SYSTEM_H
 
 #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>
 #include <limits.h>
 #include <stddef.h>
 #include <stdlib.h>