From: Paul Eggert Date: Mon, 12 Aug 2002 14:12:57 +0000 (+0000) Subject: Sync with fileutils, except use X-Git-Tag: BISON-1_49b~40 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/16cb098b72889fff9c43f2e0fa75036d8070c605 Sync with fileutils, except use PROTOTYPES to check for prototypes, and "defined __STDC__" to check for void *. --- diff --git a/lib/obstack.c b/lib/obstack.c index 0244da38..609148ee 100644 --- a/lib/obstack.c +++ b/lib/obstack.c @@ -1,22 +1,24 @@ /* obstack.c - subroutines used implicitly by object stack macros - Copyright (C) 1988-1994,96,97,98,99,2000,2001 Free Software Foundation, Inc. + + Copyright (C) 1988-1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Free Software Foundation, Inc. + This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in /gd/gnu/lib. - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. + 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. - The GNU C Library is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include @@ -53,7 +55,7 @@ #ifndef ELIDE_CODE -# if defined __STDC__ && __STDC__ +# ifdef __STDC__ # define POINTER void * # else # define POINTER char * @@ -84,7 +86,7 @@ union fooround {long x; double d;}; abort gracefully or use longjump - but shouldn't return. This variable by default points to the internal function `print_and_abort'. */ -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) static void print_and_abort (void); void (*obstack_alloc_failed_handler) (void) = print_and_abort; # else @@ -112,7 +114,7 @@ struct obstack *_obstack; For free, do not use ?:, since some compilers, like the MIPS compilers, do not allow (expr) ? void : void. */ -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) # define CALL_CHUNKFUN(h, size) \ (((h) -> use_extra_arg) \ ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \ @@ -154,7 +156,7 @@ _obstack_begin (h, size, alignment, chunkfun, freefun) struct obstack *h; int size; int alignment; -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) POINTER (*chunkfun) (long); void (*freefun) (void *); # else @@ -183,7 +185,7 @@ _obstack_begin (h, size, alignment, chunkfun, freefun) size = 4096 - extra; } -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun; h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; # else @@ -212,7 +214,7 @@ _obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg) struct obstack *h; int size; int alignment; -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) POINTER (*chunkfun) (POINTER, long); void (*freefun) (POINTER, POINTER); # else @@ -242,7 +244,7 @@ _obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg) size = 4096 - extra; } -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun; h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; # else @@ -343,7 +345,7 @@ _obstack_newchunk (h, length) This is here for debugging. If you use it in a program, you are probably losing. */ -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) /* Suppress -Wmissing-prototypes warning. We don't want to declare this in obstack.h because it is just for debugging. */ int _obstack_allocated_p (struct obstack *h, POINTER obj); @@ -505,7 +507,7 @@ print_and_abort () /* Now define the functional versions of the obstack macros. Define them to simply use the corresponding macros to do the job. */ -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) /* These function definitions do not work with non-ANSI preprocessors; they won't pass through the macro names in parentheses. */ @@ -616,7 +618,7 @@ POINTER (obstack_copy0) (obstack, address, length) return obstack_copy0 (obstack, address, length); } -# endif /* __STDC__ */ +# endif /* PROTOTYPES || (defined __STDC__ && __STDC__) */ # endif /* 0 */ diff --git a/lib/obstack.h b/lib/obstack.h index c949730e..8218db95 100644 --- a/lib/obstack.h +++ b/lib/obstack.h @@ -1,5 +1,7 @@ /* obstack.h - object stack macros - Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc. + + Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, + 1998, 1999, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in /gd/gnu/lib. @@ -7,20 +9,19 @@ NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. - 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 the - Free Software Foundation; either version 2, or (at your option) any - later version. + 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Summary: @@ -123,7 +124,11 @@ extern "C" { #endif #ifndef __INT_TO_PTR -# define __INT_TO_PTR(P) ((P) + (char *) 0) +# ifdef __STDC__ +# define __INT_TO_PTR(P) ((void *) ((P) + (char *) 0)) +# else +# define __INT_TO_PTR(P) ((P) + (char *) 0) +# endif #endif /* We need the type of the resulting object. If __PTRDIFF_TYPE__ is @@ -170,7 +175,7 @@ struct obstack /* control current object in current chunk */ char *chunk_limit; /* address of char after current chunk */ PTR_INT_TYPE temp; /* Temporary for some macros. */ int alignment_mask; /* Mask of alignment for each object. */ -#if defined __STDC__ && __STDC__ +#if PROTOTYPES || (defined __STDC__ && __STDC__) /* These prototypes vary based on `use_extra_arg', and we use casts to the prototypeless function type in all assignments, but having prototypes here quiets -Wstrict-prototypes. */ @@ -194,7 +199,7 @@ struct obstack /* control current object in current chunk */ /* Declare the external functions we use; they are in obstack.c. */ -#if defined __STDC__ && __STDC__ +#if PROTOTYPES || (defined __STDC__ && __STDC__) extern void _obstack_newchunk (struct obstack *, int); extern void _obstack_free (struct obstack *, void *); extern int _obstack_begin (struct obstack *, int, int, @@ -211,7 +216,7 @@ extern int _obstack_begin_1 (); extern int _obstack_memory_used (); #endif -#if defined __STDC__ && __STDC__ +#if PROTOTYPES || (defined __STDC__ && __STDC__) /* Do the function-declarations after the structs but before defining the macros. */ @@ -251,7 +256,7 @@ int obstack_alignment_mask (struct obstack *obstack); int obstack_chunk_size (struct obstack *obstack); int obstack_memory_used (struct obstack *obstack); -#endif /* __STDC__ */ +#endif /* PROTOTYPES || (defined __STDC__ && __STDC__) */ /* Non-ANSI C cannot really support alternative functions for these macros, so we do not declare them. */ @@ -260,7 +265,7 @@ int obstack_memory_used (struct obstack *obstack); more memory. This can be set to a user defined function which should either abort gracefully or use longjump - but shouldn't return. The default action is to print a message and abort. */ -#if defined __STDC__ && __STDC__ +#if PROTOTYPES || (defined __STDC__ && __STDC__) extern void (*obstack_alloc_failed_handler) (void); #else extern void (*obstack_alloc_failed_handler) (); @@ -289,7 +294,7 @@ extern int obstack_exit_failure; /* To prevent prototype warnings provide complete argument list in standard C version. */ -#if defined __STDC__ && __STDC__ +#if PROTOYPES || (defined __STDC__ && __STDC__) # define obstack_init(h) \ _obstack_begin ((h), 0, 0, \ @@ -584,7 +589,7 @@ __extension__ \ (h)->object_base = (h)->next_free, \ __INT_TO_PTR ((h)->temp)) -# if defined __STDC__ && __STDC__ +# if PROTOTYPES || (defined __STDC__ && __STDC__) # define obstack_free(h,obj) \ ( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \ (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\