merge from gcc

This commit is contained in:
DJ Delorie 2013-03-17 21:25:53 +00:00
parent a09ae1c1e8
commit eea302037a
5 changed files with 36 additions and 35 deletions

View file

@ -1,7 +1,13 @@
2013-03-17 Eli Zaretskii <eliz@gnu.org> 2013-03-06 Tobias Burnus <burnus@net-b.de>
* setenv.c [!HAVE_ENVIRON_DECL]: Avoid declaring environ if it is * libiberty.texi: Update comment, remove lowersections.
a macro, as this causes compiler warnings with MinGW. * obstacks.texi: Regenerate.
2013-03-05 Jakub Jelinek <jakub@redhat.com>
PR middle-end/56526
* simple-object-mach-o.c (simple_object_mach_o_segment): Initialize
wrapper_sect_offset to avoid a warning.
2013-03-01 Andreas Schwab <schwab@linux-m68k.org> 2013-03-01 Andreas Schwab <schwab@linux-m68k.org>

View file

@ -241,13 +241,8 @@ central location from which to use, maintain, and distribute them.
* Obstacks:: Stacks of arbitrary objects. * Obstacks:: Stacks of arbitrary objects.
@end menu @end menu
@c This is generated from the glibc manual using a make-obstacks-texi.sh @c This is generated from the glibc manual using contrib/make-obstacks-texi.pl
@c script of Phil's. Hope it's accurate.
@lowersections
@lowersections
@include obstacks.texi @include obstacks.texi
@raisesections
@raisesections
@node Functions @node Functions
@chapter Function, Variable, and Macro Listing. @chapter Function, Variable, and Macro Listing.

View file

@ -1,5 +1,5 @@
@node Obstacks @node Obstacks
@chapter Obstacks @subsection Obstacks
@cindex obstacks @cindex obstacks
An @dfn{obstack} is a pool of memory containing a stack of objects. You An @dfn{obstack} is a pool of memory containing a stack of objects. You
@ -15,25 +15,25 @@ the objects are usually small. And the only space overhead per object is
the padding needed to start each object on a suitable boundary. the padding needed to start each object on a suitable boundary.
@menu @menu
* Creating Obstacks:: How to declare an obstack in your program. * Creating Obstacks:: How to declare an obstack in your program.
* Preparing for Obstacks:: Preparations needed before you can * Preparing for Obstacks:: Preparations needed before you can
use obstacks. use obstacks.
* Allocation in an Obstack:: Allocating objects in an obstack. * Allocation in an Obstack:: Allocating objects in an obstack.
* Freeing Obstack Objects:: Freeing objects in an obstack. * Freeing Obstack Objects:: Freeing objects in an obstack.
* Obstack Functions:: The obstack functions are both * Obstack Functions:: The obstack functions are both
functions and macros. functions and macros.
* Growing Objects:: Making an object bigger by stages. * Growing Objects:: Making an object bigger by stages.
* Extra Fast Growing:: Extra-high-efficiency (though more * Extra Fast Growing:: Extra-high-efficiency (though more
complicated) growing objects. complicated) growing objects.
* Status of an Obstack:: Inquiries about the status of an obstack. * Status of an Obstack:: Inquiries about the status of an obstack.
* Obstacks Data Alignment:: Controlling alignment of objects in obstacks. * Obstacks Data Alignment:: Controlling alignment of objects in obstacks.
* Obstack Chunks:: How obstacks obtain and release chunks; * Obstack Chunks:: How obstacks obtain and release chunks;
efficiency considerations. efficiency considerations.
* Summary of Obstacks:: * Summary of Obstacks::
@end menu @end menu
@node Creating Obstacks @node Creating Obstacks
@section Creating Obstacks @subsubsection Creating Obstacks
The utilities for manipulating obstacks are declared in the header The utilities for manipulating obstacks are declared in the header
file @file{obstack.h}. file @file{obstack.h}.
@ -74,7 +74,7 @@ directly or indirectly. You must also supply a function to free a chunk.
These matters are described in the following section. These matters are described in the following section.
@node Preparing for Obstacks @node Preparing for Obstacks
@section Preparing for Using Obstacks @subsubsection Preparing for Using Obstacks
Each source file in which you plan to use the obstack functions Each source file in which you plan to use the obstack functions
must include the header file @file{obstack.h}, like this: must include the header file @file{obstack.h}, like this:
@ -160,7 +160,7 @@ obstack_alloc_failed_handler = &my_obstack_alloc_failed;
@end defvar @end defvar
@node Allocation in an Obstack @node Allocation in an Obstack
@section Allocation in an Obstack @subsubsection Allocation in an Obstack
@cindex allocation (obstacks) @cindex allocation (obstacks)
The most direct way to allocate an object in an obstack is with The most direct way to allocate an object in an obstack is with
@ -233,7 +233,7 @@ Contrast this with the previous example of @code{savestring} using
@code{malloc} (@pxref{Basic Allocation, , , libc, The GNU C Library Reference Manual}). @code{malloc} (@pxref{Basic Allocation, , , libc, The GNU C Library Reference Manual}).
@node Freeing Obstack Objects @node Freeing Obstack Objects
@section Freeing Objects in an Obstack @subsubsection Freeing Objects in an Obstack
@cindex freeing (obstacks) @cindex freeing (obstacks)
To free an object allocated in an obstack, use the function To free an object allocated in an obstack, use the function
@ -265,7 +265,7 @@ frees the chunk (@pxref{Preparing for Obstacks}). Then other
obstacks, or non-obstack allocation, can reuse the space of the chunk. obstacks, or non-obstack allocation, can reuse the space of the chunk.
@node Obstack Functions @node Obstack Functions
@section Obstack Functions and Macros @subsubsection Obstack Functions and Macros
@cindex macros @cindex macros
The interfaces for using obstacks may be defined either as functions or The interfaces for using obstacks may be defined either as functions or
@ -321,7 +321,7 @@ various language extensions in GNU C permit defining the macros so as to
compute each argument only once. compute each argument only once.
@node Growing Objects @node Growing Objects
@section Growing Objects @subsubsection Growing Objects
@cindex growing objects (in obstacks) @cindex growing objects (in obstacks)
@cindex changing the size of a block (obstacks) @cindex changing the size of a block (obstacks)
@ -435,7 +435,7 @@ the current object smaller. Just don't try to shrink it beyond zero
length---there's no telling what will happen if you do that. length---there's no telling what will happen if you do that.
@node Extra Fast Growing @node Extra Fast Growing
@section Extra Fast Growing Objects @subsubsection Extra Fast Growing Objects
@cindex efficiency and obstacks @cindex efficiency and obstacks
The usual functions for growing objects incur overhead for checking The usual functions for growing objects incur overhead for checking
@ -538,7 +538,7 @@ add_string (struct obstack *obstack, const char *ptr, int len)
@end smallexample @end smallexample
@node Status of an Obstack @node Status of an Obstack
@section Status of an Obstack @subsubsection Status of an Obstack
@cindex obstack status @cindex obstack status
@cindex status of obstack @cindex status of obstack
@ -580,12 +580,13 @@ obstack_next_free (@var{obstack-ptr}) - obstack_base (@var{obstack-ptr})
@end deftypefun @end deftypefun
@node Obstacks Data Alignment @node Obstacks Data Alignment
@section Alignment of Data in Obstacks @subsubsection Alignment of Data in Obstacks
@cindex alignment (in obstacks) @cindex alignment (in obstacks)
Each obstack has an @dfn{alignment boundary}; each object allocated in Each obstack has an @dfn{alignment boundary}; each object allocated in
the obstack automatically starts on an address that is a multiple of the the obstack automatically starts on an address that is a multiple of the
specified boundary. By default, this boundary is 4 bytes. specified boundary. By default, this boundary is aligned so that
the object can hold any type of data.
To access an obstack's alignment boundary, use the macro To access an obstack's alignment boundary, use the macro
@code{obstack_alignment_mask}, whose function prototype looks like @code{obstack_alignment_mask}, whose function prototype looks like
@ -597,7 +598,9 @@ this:
The value is a bit mask; a bit that is 1 indicates that the corresponding The value is a bit mask; a bit that is 1 indicates that the corresponding
bit in the address of an object should be 0. The mask value should be one bit in the address of an object should be 0. The mask value should be one
less than a power of 2; the effect is that all object addresses are less than a power of 2; the effect is that all object addresses are
multiples of that power of 2. The default value of the mask is 3, so that multiples of that power of 2. The default value of the mask is a value
that allows aligned objects to hold any type of data: for example, if
its value is 3, any type of data can be stored at locations whose
addresses are multiples of 4. A mask value of 0 means an object can start addresses are multiples of 4. A mask value of 0 means an object can start
on any multiple of 1 (that is, no alignment is required). on any multiple of 1 (that is, no alignment is required).
@ -620,7 +623,7 @@ This will finish a zero-length object and then do proper alignment for
the next object. the next object.
@node Obstack Chunks @node Obstack Chunks
@section Obstack Chunks @subsubsection Obstack Chunks
@cindex efficiency of chunks @cindex efficiency of chunks
@cindex chunks @cindex chunks
@ -676,7 +679,7 @@ if (obstack_chunk_size (obstack_ptr) < @var{new-chunk-size})
@end smallexample @end smallexample
@node Summary of Obstacks @node Summary of Obstacks
@section Summary of Obstack Functions @subsubsection Summary of Obstack Functions
Here is a summary of all the functions associated with obstacks. Each Here is a summary of all the functions associated with obstacks. Each
takes the address of an obstack (@code{struct obstack *}) as its first takes the address of an obstack (@code{struct obstack *}) as its first

View file

@ -63,11 +63,8 @@ extern int errno;
#define __environ environ #define __environ environ
#ifndef HAVE_ENVIRON_DECL #ifndef HAVE_ENVIRON_DECL
/* MinGW defines environ to call a function. */
#ifndef environ
extern char **environ; extern char **environ;
#endif #endif
#endif
#undef setenv #undef setenv
#undef unsetenv #undef unsetenv

View file

@ -432,7 +432,7 @@ simple_object_mach_o_segment (simple_object_read *sobj, off_t offset,
size_t index_size; size_t index_size;
unsigned int n_wrapped_sects; unsigned int n_wrapped_sects;
size_t wrapper_sect_size; size_t wrapper_sect_size;
off_t wrapper_sect_offset; off_t wrapper_sect_offset = 0;
fetch_32 = (omr->is_big_endian fetch_32 = (omr->is_big_endian
? simple_object_fetch_big_32 ? simple_object_fetch_big_32