* Fix some texinfo 5.0 warnings in gcc/doc + libiberty
@ 2013-02-21 16:05 Tobias Burnus
2013-02-21 16:33 ` Andreas Schwab
2013-02-25 8:31 ` Tobias Burnus
0 siblings, 2 replies; 7+ messages in thread
From: Tobias Burnus @ 2013-02-21 16:05 UTC (permalink / raw)
To: gcc patches, gfortran
[-- Attachment #1: Type: text/plain, Size: 1535 bytes --]
This is a follow up to Jakub's patch.
With texinfo 5.0 one gets a bunch of warnings. This patch reduces the
number of warnings â but there are still warnings to be fixed.
This patch solves most of the issues related to mismatches between the
item order in the @menu and the actual @nodes. As always, there is the
question whether the @node or the item in @menu should be changed. In
one case, I had the choice to either add a new item under @menu or to
change a @section into @subsection. I did the latter.
Tested with "make info" and no new warnings in texinfo 5.0.
Additionally, I used texinfo 4.13a with showed no warnings.
OK for the trunk?
Tobias
PS: I tried the following libiberty patch; it fixes a warning with
texinfo 5.0. But I do not include it as it fails for some reason with an
error with texinfo 4.13:
../../libiberty/libiberty.texi:250: Prev field of node `Functions' not
pointed to.
../../libiberty//obstacks.texi:1: This node (Obstacks) has the bad Next.
...
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
index 74f70d2..5a72f13 100644
--- a/libiberty/libiberty.texi
+++ b/libiberty/libiberty.texi
@@ -80,10 +80,10 @@ License; for more information, see @ref{Library
Copying}.
* Overview:: Overview of available function groups.
-* Functions:: Available functions, macros, and global variables.
-
* Obstacks:: Object Stacks.
+* Functions:: Available functions, macros, and global variables.
+
* Licenses:: The various licenses under which libiberty sources are
distributed.
[-- Attachment #2: texinfo5-warn-fix.diff --]
[-- Type: text/x-patch, Size: 37433 bytes --]
gcc/
2013-02-21 Tobias Burnus <burnus@net-b.de>
* doc/extended.texi (C Extensions): Change order in @menu
to match @node.
(Other MIPS Built-in Functions): Move last MIPS entry before
"picoChip Built-in Functions".
(SH Built-in Functions): Move after RX Built-in Functions.
* doc/gcc.texi (Introduction): Change order in @menu
to match @node.
* doc/md.texi (Constraints): Ditto.
* gty.texi (Type Information): Ditto.
(User-provided marking routines for template types): Make
subsection.
* doc/invoke.texi (AArch64 Options): Move before
"Adapteva Epiphany Options".
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index eb84408..ea4dfc1 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -30,8 +30,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Constructing Calls:: Dispatching a call to another function.
* Typeof:: @code{typeof}: referring to the type of an expression.
* Conditionals:: Omitting the middle operand of a @samp{?:} expression.
-* Long Long:: Double-word integers---@code{long long int}.
* __int128:: 128-bit integers---@code{__int128}.
+* Long Long:: Double-word integers---@code{long long int}.
* Complex:: Data types for complex numbers.
* Floating Types:: Additional Floating Types.
* Half-Precision:: Half-Precision Floating Point.
@@ -40,8 +40,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Fixed-Point:: Fixed-Point Types.
* Named Address Spaces::Named address spaces.
* Zero Length:: Zero-length arrays.
-* Variable Length:: Arrays whose length is computed at run time.
* Empty Structures:: Structures with no members.
+* Variable Length:: Arrays whose length is computed at run time.
* Variadic Macros:: Macros with a variable number of arguments.
* Escaped Newlines:: Slightly looser rules for escaped newlines.
* Subscripting:: Any array can be subscripted, even if not an lvalue.
@@ -50,8 +50,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Compound Literals:: Compound literals give structures, unions
or arrays as values.
* Designated Inits:: Labeling elements of initializers.
-* Cast to Union:: Casting to union type from any member of the union.
* Case Ranges:: `case 1 ... 9' and such.
+* Cast to Union:: Casting to union type from any member of the union.
* Mixed Declarations:: Mixing declarations and code.
* Function Attributes:: Declaring that functions have no side effects,
or that they can never return.
@@ -11653,6 +11653,18 @@ else
@end smallexample
@end table
+@node Other MIPS Built-in Functions
+@subsection Other MIPS Built-in Functions
+
+GCC provides other MIPS-specific built-in functions:
+
+@table @code
+@item void __builtin_mips_cache (int @var{op}, const volatile void *@var{addr})
+Insert a @samp{cache} instruction with operands @var{op} and @var{addr}.
+GCC defines the preprocessor macro @code{___GCC_HAVE_BUILTIN_MIPS_CACHE}
+when this function is available.
+@end table
+
@node picoChip Built-in Functions
@subsection picoChip Built-in Functions
@@ -11689,18 +11701,6 @@ implementing assertions.
@end table
-@node Other MIPS Built-in Functions
-@subsection Other MIPS Built-in Functions
-
-GCC provides other MIPS-specific built-in functions:
-
-@table @code
-@item void __builtin_mips_cache (int @var{op}, const volatile void *@var{addr})
-Insert a @samp{cache} instruction with operands @var{op} and @var{addr}.
-GCC defines the preprocessor macro @code{___GCC_HAVE_BUILTIN_MIPS_CACHE}
-when this function is available.
-@end table
-
@node PowerPC Built-in Functions
@subsection PowerPC Built-in Functions
@@ -13791,41 +13791,6 @@ if the VSX instruction set is available. The @samp{vec_vsx_ld} and
@samp{vec_vsx_st} built-in functions always generate the VSX @samp{LXVD2X},
@samp{LXVW4X}, @samp{STXVD2X}, and @samp{STXVW4X} instructions.
-@node SH Built-in Functions
-@subsection SH Built-in Functions
-The following built-in functions are supported on the SH1, SH2, SH3 and SH4
-families of processors:
-
-@deftypefn {Built-in Function} {void} __builtin_set_thread_pointer (void *@var{ptr})
-Sets the @samp{GBR} register to the specified value @var{ptr}. This is usually
-used by system code that manages threads and execution contexts. The compiler
-normally does not generate code that modifies the contents of @samp{GBR} and
-thus the value is preserved across function calls. Changing the @samp{GBR}
-value in user code must be done with caution, since the compiler might use
-@samp{GBR} in order to access thread local variables.
-
-@end deftypefn
-
-@deftypefn {Built-in Function} {void *} __builtin_thread_pointer (void)
-Returns the value that is currently set in the @samp{GBR} register.
-Memory loads and stores that use the thread pointer as a base address are
-turned into @samp{GBR} based displacement loads and stores, if possible.
-For example:
-@smallexample
-struct my_tcb
-@{
- int a, b, c, d, e;
-@};
-
-int get_tcb_value (void)
-@{
- // Generate @samp{mov.l @@(8,gbr),r0} instruction
- return ((my_tcb*)__builtin_thread_pointer ())->c;
-@}
-
-@end smallexample
-@end deftypefn
-
@node RX Built-in Functions
@subsection RX Built-in Functions
GCC supports some of the RX instructions which cannot be expressed in
@@ -13941,6 +13906,41 @@ bit in the processor status word.
Generates the @code{wait} machine instruction.
@end deftypefn
+@node SH Built-in Functions
+@subsection SH Built-in Functions
+The following built-in functions are supported on the SH1, SH2, SH3 and SH4
+families of processors:
+
+@deftypefn {Built-in Function} {void} __builtin_set_thread_pointer (void *@var{ptr})
+Sets the @samp{GBR} register to the specified value @var{ptr}. This is usually
+used by system code that manages threads and execution contexts. The compiler
+normally does not generate code that modifies the contents of @samp{GBR} and
+thus the value is preserved across function calls. Changing the @samp{GBR}
+value in user code must be done with caution, since the compiler might use
+@samp{GBR} in order to access thread local variables.
+
+@end deftypefn
+
+@deftypefn {Built-in Function} {void *} __builtin_thread_pointer (void)
+Returns the value that is currently set in the @samp{GBR} register.
+Memory loads and stores that use the thread pointer as a base address are
+turned into @samp{GBR} based displacement loads and stores, if possible.
+For example:
+@smallexample
+struct my_tcb
+@{
+ int a, b, c, d, e;
+@};
+
+int get_tcb_value (void)
+@{
+ // Generate @samp{mov.l @@(8,gbr),r0} instruction
+ return ((my_tcb*)__builtin_thread_pointer ())->c;
+@}
+
+@end smallexample
+@end deftypefn
+
@node SPARC VIS Built-in Functions
@subsection SPARC VIS Built-in Functions
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index 8f6f11f..02b81cf 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -132,8 +132,8 @@ Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
* Standards:: Language standards supported by GCC.
* Invoking GCC:: Command options supported by @samp{gcc}.
* C Implementation:: How GCC implements the ISO C specification.
-* C Extensions:: GNU extensions to the C language family.
* C++ Implementation:: How GCC implements the ISO C++ specification.
+* C Extensions:: GNU extensions to the C language family.
* C++ Extensions:: GNU extensions to the C++ language.
* Objective-C:: GNU Objective-C runtime features.
* Compatibility:: Binary Compatibility
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi
index a752178..82e8e4f 100644
--- a/gcc/doc/gty.texi
+++ b/gcc/doc/gty.texi
@@ -87,8 +87,8 @@ data members.
@menu
* GTY Options:: What goes inside a @code{GTY(())}.
-* GGC Roots:: Making global variables GGC roots.
* User GC:: Adding user-provided GC marking routines.
+* GGC Roots:: Making global variables GGC roots.
* Files:: How the generated files work.
* Invoking the garbage collector:: How to invoke the garbage collector.
* Troubleshooting:: When something does not work as expected.
@@ -515,7 +515,7 @@ Note that the rules for the pointer walker @code{gt_pch_nx (my_struct
case, the operation @code{op} must be applied to the @emph{address} of
every pointer field.
-@section User-provided marking routines for template types
+@subsection User-provided marking routines for template types
When a template type @code{TP} is marked with @code{GTY}, all
instances of that type are considered user-provided types. This means
that the individual instances of @code{TP} do not need to be marked
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index cadee04..66a4686 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -10853,6 +10853,125 @@ platform.
* zSeries Options::
@end menu
+@node AArch64 Options
+@subsection AArch64 Options
+@cindex AArch64 Options
+
+These options are defined for AArch64 implementations:
+
+@table @gcctabopt
+
+@item -mbig-endian
+@opindex mbig-endian
+Generate big-endian code. This is the default when GCC is configured for an
+@samp{aarch64_be-*-*} target.
+
+@item -mgeneral-regs-only
+@opindex mgeneral-regs-only
+Generate code which uses only the general registers.
+
+@item -mlittle-endian
+@opindex mlittle-endian
+Generate little-endian code. This is the default when GCC is configured for an
+@samp{aarch64-*-*} but not an @samp{aarch64_be-*-*} target.
+
+@item -mcmodel=tiny
+@opindex mcmodel=tiny
+Generate code for the tiny code model. The program and its statically defined
+symbols must be within 1GB of each other. Pointers are 64 bits. Programs can
+be statically or dynamically linked. This model is not fully implemented and
+mostly treated as @samp{small}.
+
+@item -mcmodel=small
+@opindex mcmodel=small
+Generate code for the small code model. The program and its statically defined
+symbols must be within 4GB of each other. Pointers are 64 bits. Programs can
+be statically or dynamically linked. This is the default code model.
+
+@item -mcmodel=large
+@opindex mcmodel=large
+Generate code for the large code model. This makes no assumptions about
+addresses and sizes of sections. Pointers are 64 bits. Programs can be
+statically linked only.
+
+@item -mstrict-align
+@opindex mstrict-align
+Do not assume that unaligned memory references will be handled by the system.
+
+@item -momit-leaf-frame-pointer
+@itemx -mno-omit-leaf-frame-pointer
+@opindex momit-leaf-frame-pointer
+@opindex mno-omit-leaf-frame-pointer
+Omit or keep the frame pointer in leaf functions. The former behaviour is the
+default.
+
+@item -mtls-dialect=desc
+@opindex mtls-dialect=desc
+Use TLS descriptors as the thread-local storage mechanism for dynamic accesses
+of TLS variables. This is the default.
+
+@item -mtls-dialect=traditional
+@opindex mtls-dialect=traditional
+Use traditional TLS as the thread-local storage mechanism for dynamic accesses
+of TLS variables.
+
+@item -march=@var{name}
+@opindex march
+Specify the name of the target architecture, optionally suffixed by one or
+more feature modifiers. This option has the form
+@option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
+only value for @var{arch} is @samp{armv8-a}. The possible values for
+@var{feature} are documented in the sub-section below.
+
+Where conflicting feature modifiers are specified, the right-most feature is
+used.
+
+GCC uses this name to determine what kind of instructions it can emit when
+generating assembly code. This option can be used in conjunction with or
+instead of the @option{-mcpu=} option.
+
+@item -mcpu=@var{name}
+@opindex mcpu
+Specify the name of the target processor, optionally suffixed by one or more
+feature modifiers. This option has the form
+@option{-mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
+possible values for @var{cpu} are @samp{generic}, @samp{large}. The
+possible values for @var{feature} are documented in the sub-section
+below.
+
+Where conflicting feature modifiers are specified, the right-most feature is
+used.
+
+GCC uses this name to determine what kind of instructions it can emit when
+generating assembly code.
+
+@item -mtune=@var{name}
+@opindex mtune
+Specify the name of the processor to tune the performance for. The code will
+be tuned as if the target processor were of the type specified in this option,
+but still using instructions compatible with the target processor specified
+by a @option{-mcpu=} option. This option cannot be suffixed by feature
+modifiers.
+
+@end table
+
+@subsubsection @option{-march} and @option{-mcpu} feature modifiers
+@cindex @option{-march} feature modifiers
+@cindex @option{-mcpu} feature modifiers
+Feature modifiers used with @option{-march} and @option{-mcpu} can be one
+the following:
+
+@table @samp
+@item crypto
+Enable Crypto extension. This implies Advanced SIMD is enabled.
+@item fp
+Enable floating-point instructions.
+@item simd
+Enable Advanced SIMD instructions. This implies floating-point instructions
+are enabled. This is the default for all current possible values for options
+@option{-march} and @option{-mcpu=}.
+@end table
+
@node Adapteva Epiphany Options
@subsection Adapteva Epiphany Options
@@ -11009,125 +11128,6 @@ purpose. The default is @option{-m1reg-none}.
@end table
-@node AArch64 Options
-@subsection AArch64 Options
-@cindex AArch64 Options
-
-These options are defined for AArch64 implementations:
-
-@table @gcctabopt
-
-@item -mbig-endian
-@opindex mbig-endian
-Generate big-endian code. This is the default when GCC is configured for an
-@samp{aarch64_be-*-*} target.
-
-@item -mgeneral-regs-only
-@opindex mgeneral-regs-only
-Generate code which uses only the general registers.
-
-@item -mlittle-endian
-@opindex mlittle-endian
-Generate little-endian code. This is the default when GCC is configured for an
-@samp{aarch64-*-*} but not an @samp{aarch64_be-*-*} target.
-
-@item -mcmodel=tiny
-@opindex mcmodel=tiny
-Generate code for the tiny code model. The program and its statically defined
-symbols must be within 1GB of each other. Pointers are 64 bits. Programs can
-be statically or dynamically linked. This model is not fully implemented and
-mostly treated as @samp{small}.
-
-@item -mcmodel=small
-@opindex mcmodel=small
-Generate code for the small code model. The program and its statically defined
-symbols must be within 4GB of each other. Pointers are 64 bits. Programs can
-be statically or dynamically linked. This is the default code model.
-
-@item -mcmodel=large
-@opindex mcmodel=large
-Generate code for the large code model. This makes no assumptions about
-addresses and sizes of sections. Pointers are 64 bits. Programs can be
-statically linked only.
-
-@item -mstrict-align
-@opindex mstrict-align
-Do not assume that unaligned memory references will be handled by the system.
-
-@item -momit-leaf-frame-pointer
-@itemx -mno-omit-leaf-frame-pointer
-@opindex momit-leaf-frame-pointer
-@opindex mno-omit-leaf-frame-pointer
-Omit or keep the frame pointer in leaf functions. The former behaviour is the
-default.
-
-@item -mtls-dialect=desc
-@opindex mtls-dialect=desc
-Use TLS descriptors as the thread-local storage mechanism for dynamic accesses
-of TLS variables. This is the default.
-
-@item -mtls-dialect=traditional
-@opindex mtls-dialect=traditional
-Use traditional TLS as the thread-local storage mechanism for dynamic accesses
-of TLS variables.
-
-@item -march=@var{name}
-@opindex march
-Specify the name of the target architecture, optionally suffixed by one or
-more feature modifiers. This option has the form
-@option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
-only value for @var{arch} is @samp{armv8-a}. The possible values for
-@var{feature} are documented in the sub-section below.
-
-Where conflicting feature modifiers are specified, the right-most feature is
-used.
-
-GCC uses this name to determine what kind of instructions it can emit when
-generating assembly code. This option can be used in conjunction with or
-instead of the @option{-mcpu=} option.
-
-@item -mcpu=@var{name}
-@opindex mcpu
-Specify the name of the target processor, optionally suffixed by one or more
-feature modifiers. This option has the form
-@option{-mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
-possible values for @var{cpu} are @samp{generic}, @samp{large}. The
-possible values for @var{feature} are documented in the sub-section
-below.
-
-Where conflicting feature modifiers are specified, the right-most feature is
-used.
-
-GCC uses this name to determine what kind of instructions it can emit when
-generating assembly code.
-
-@item -mtune=@var{name}
-@opindex mtune
-Specify the name of the processor to tune the performance for. The code will
-be tuned as if the target processor were of the type specified in this option,
-but still using instructions compatible with the target processor specified
-by a @option{-mcpu=} option. This option cannot be suffixed by feature
-modifiers.
-
-@end table
-
-@subsubsection @option{-march} and @option{-mcpu} feature modifiers
-@cindex @option{-march} feature modifiers
-@cindex @option{-mcpu} feature modifiers
-Feature modifiers used with @option{-march} and @option{-mcpu} can be one
-the following:
-
-@table @samp
-@item crypto
-Enable Crypto extension. This implies Advanced SIMD is enabled.
-@item fp
-Enable floating-point instructions.
-@item simd
-Enable Advanced SIMD instructions. This implies floating-point instructions
-are enabled. This is the default for all current possible values for options
-@option{-march} and @option{-mcpu=}.
-@end table
-
@node ARM Options
@subsection ARM Options
@cindex ARM options
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 9739e4f..63ec92f 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -1079,8 +1079,8 @@ the addressing register.
* Multi-Alternative:: When an insn has two alternative constraint-patterns.
* Class Preferences:: Constraints guide which hard register to put things in.
* Modifiers:: More precise control over effects of constraints.
-* Disable Insn Alternatives:: Disable insn alternatives using the @code{enabled} attribute.
* Machine Constraints:: Existing constraints for some particular machines.
+* Disable Insn Alternatives:: Disable insn alternatives using the @code{enabled} attribute.
* Define Constraints:: How to define machine-specific constraints.
* C Constraint Interface:: How to test constraints from C code.
@end menu
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
index 74f70d2..5a72f13 100644
--- a/libiberty/libiberty.texi
+++ b/libiberty/libiberty.texi
@@ -80,10 +80,10 @@ License; for more information, see @ref{Library Copying}.
* Overview:: Overview of available function groups.
-* Functions:: Available functions, macros, and global variables.
-
* Obstacks:: Object Stacks.
+* Functions:: Available functions, macros, and global variables.
+
* Licenses:: The various licenses under which libiberty sources are
distributed.
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index eb84408..ea4dfc1 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -30,8 +30,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Constructing Calls:: Dispatching a call to another function.
* Typeof:: @code{typeof}: referring to the type of an expression.
* Conditionals:: Omitting the middle operand of a @samp{?:} expression.
-* Long Long:: Double-word integers---@code{long long int}.
* __int128:: 128-bit integers---@code{__int128}.
+* Long Long:: Double-word integers---@code{long long int}.
* Complex:: Data types for complex numbers.
* Floating Types:: Additional Floating Types.
* Half-Precision:: Half-Precision Floating Point.
@@ -40,8 +40,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Fixed-Point:: Fixed-Point Types.
* Named Address Spaces::Named address spaces.
* Zero Length:: Zero-length arrays.
-* Variable Length:: Arrays whose length is computed at run time.
* Empty Structures:: Structures with no members.
+* Variable Length:: Arrays whose length is computed at run time.
* Variadic Macros:: Macros with a variable number of arguments.
* Escaped Newlines:: Slightly looser rules for escaped newlines.
* Subscripting:: Any array can be subscripted, even if not an lvalue.
@@ -50,8 +50,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Compound Literals:: Compound literals give structures, unions
or arrays as values.
* Designated Inits:: Labeling elements of initializers.
-* Cast to Union:: Casting to union type from any member of the union.
* Case Ranges:: `case 1 ... 9' and such.
+* Cast to Union:: Casting to union type from any member of the union.
* Mixed Declarations:: Mixing declarations and code.
* Function Attributes:: Declaring that functions have no side effects,
or that they can never return.
@@ -11653,6 +11653,18 @@ else
@end smallexample
@end table
+@node Other MIPS Built-in Functions
+@subsection Other MIPS Built-in Functions
+
+GCC provides other MIPS-specific built-in functions:
+
+@table @code
+@item void __builtin_mips_cache (int @var{op}, const volatile void *@var{addr})
+Insert a @samp{cache} instruction with operands @var{op} and @var{addr}.
+GCC defines the preprocessor macro @code{___GCC_HAVE_BUILTIN_MIPS_CACHE}
+when this function is available.
+@end table
+
@node picoChip Built-in Functions
@subsection picoChip Built-in Functions
@@ -11689,18 +11701,6 @@ implementing assertions.
@end table
-@node Other MIPS Built-in Functions
-@subsection Other MIPS Built-in Functions
-
-GCC provides other MIPS-specific built-in functions:
-
-@table @code
-@item void __builtin_mips_cache (int @var{op}, const volatile void *@var{addr})
-Insert a @samp{cache} instruction with operands @var{op} and @var{addr}.
-GCC defines the preprocessor macro @code{___GCC_HAVE_BUILTIN_MIPS_CACHE}
-when this function is available.
-@end table
-
@node PowerPC Built-in Functions
@subsection PowerPC Built-in Functions
@@ -13791,41 +13791,6 @@ if the VSX instruction set is available. The @samp{vec_vsx_ld} and
@samp{vec_vsx_st} built-in functions always generate the VSX @samp{LXVD2X},
@samp{LXVW4X}, @samp{STXVD2X}, and @samp{STXVW4X} instructions.
-@node SH Built-in Functions
-@subsection SH Built-in Functions
-The following built-in functions are supported on the SH1, SH2, SH3 and SH4
-families of processors:
-
-@deftypefn {Built-in Function} {void} __builtin_set_thread_pointer (void *@var{ptr})
-Sets the @samp{GBR} register to the specified value @var{ptr}. This is usually
-used by system code that manages threads and execution contexts. The compiler
-normally does not generate code that modifies the contents of @samp{GBR} and
-thus the value is preserved across function calls. Changing the @samp{GBR}
-value in user code must be done with caution, since the compiler might use
-@samp{GBR} in order to access thread local variables.
-
-@end deftypefn
-
-@deftypefn {Built-in Function} {void *} __builtin_thread_pointer (void)
-Returns the value that is currently set in the @samp{GBR} register.
-Memory loads and stores that use the thread pointer as a base address are
-turned into @samp{GBR} based displacement loads and stores, if possible.
-For example:
-@smallexample
-struct my_tcb
-@{
- int a, b, c, d, e;
-@};
-
-int get_tcb_value (void)
-@{
- // Generate @samp{mov.l @@(8,gbr),r0} instruction
- return ((my_tcb*)__builtin_thread_pointer ())->c;
-@}
-
-@end smallexample
-@end deftypefn
-
@node RX Built-in Functions
@subsection RX Built-in Functions
GCC supports some of the RX instructions which cannot be expressed in
@@ -13941,6 +13906,41 @@ bit in the processor status word.
Generates the @code{wait} machine instruction.
@end deftypefn
+@node SH Built-in Functions
+@subsection SH Built-in Functions
+The following built-in functions are supported on the SH1, SH2, SH3 and SH4
+families of processors:
+
+@deftypefn {Built-in Function} {void} __builtin_set_thread_pointer (void *@var{ptr})
+Sets the @samp{GBR} register to the specified value @var{ptr}. This is usually
+used by system code that manages threads and execution contexts. The compiler
+normally does not generate code that modifies the contents of @samp{GBR} and
+thus the value is preserved across function calls. Changing the @samp{GBR}
+value in user code must be done with caution, since the compiler might use
+@samp{GBR} in order to access thread local variables.
+
+@end deftypefn
+
+@deftypefn {Built-in Function} {void *} __builtin_thread_pointer (void)
+Returns the value that is currently set in the @samp{GBR} register.
+Memory loads and stores that use the thread pointer as a base address are
+turned into @samp{GBR} based displacement loads and stores, if possible.
+For example:
+@smallexample
+struct my_tcb
+@{
+ int a, b, c, d, e;
+@};
+
+int get_tcb_value (void)
+@{
+ // Generate @samp{mov.l @@(8,gbr),r0} instruction
+ return ((my_tcb*)__builtin_thread_pointer ())->c;
+@}
+
+@end smallexample
+@end deftypefn
+
@node SPARC VIS Built-in Functions
@subsection SPARC VIS Built-in Functions
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index 8f6f11f..02b81cf 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -132,8 +132,8 @@ Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
* Standards:: Language standards supported by GCC.
* Invoking GCC:: Command options supported by @samp{gcc}.
* C Implementation:: How GCC implements the ISO C specification.
-* C Extensions:: GNU extensions to the C language family.
* C++ Implementation:: How GCC implements the ISO C++ specification.
+* C Extensions:: GNU extensions to the C language family.
* C++ Extensions:: GNU extensions to the C++ language.
* Objective-C:: GNU Objective-C runtime features.
* Compatibility:: Binary Compatibility
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi
index a752178..82e8e4f 100644
--- a/gcc/doc/gty.texi
+++ b/gcc/doc/gty.texi
@@ -87,8 +87,8 @@ data members.
@menu
* GTY Options:: What goes inside a @code{GTY(())}.
-* GGC Roots:: Making global variables GGC roots.
* User GC:: Adding user-provided GC marking routines.
+* GGC Roots:: Making global variables GGC roots.
* Files:: How the generated files work.
* Invoking the garbage collector:: How to invoke the garbage collector.
* Troubleshooting:: When something does not work as expected.
@@ -515,7 +515,7 @@ Note that the rules for the pointer walker @code{gt_pch_nx (my_struct
case, the operation @code{op} must be applied to the @emph{address} of
every pointer field.
-@section User-provided marking routines for template types
+@subsection User-provided marking routines for template types
When a template type @code{TP} is marked with @code{GTY}, all
instances of that type are considered user-provided types. This means
that the individual instances of @code{TP} do not need to be marked
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index cadee04..66a4686 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -10853,6 +10853,125 @@ platform.
* zSeries Options::
@end menu
+@node AArch64 Options
+@subsection AArch64 Options
+@cindex AArch64 Options
+
+These options are defined for AArch64 implementations:
+
+@table @gcctabopt
+
+@item -mbig-endian
+@opindex mbig-endian
+Generate big-endian code. This is the default when GCC is configured for an
+@samp{aarch64_be-*-*} target.
+
+@item -mgeneral-regs-only
+@opindex mgeneral-regs-only
+Generate code which uses only the general registers.
+
+@item -mlittle-endian
+@opindex mlittle-endian
+Generate little-endian code. This is the default when GCC is configured for an
+@samp{aarch64-*-*} but not an @samp{aarch64_be-*-*} target.
+
+@item -mcmodel=tiny
+@opindex mcmodel=tiny
+Generate code for the tiny code model. The program and its statically defined
+symbols must be within 1GB of each other. Pointers are 64 bits. Programs can
+be statically or dynamically linked. This model is not fully implemented and
+mostly treated as @samp{small}.
+
+@item -mcmodel=small
+@opindex mcmodel=small
+Generate code for the small code model. The program and its statically defined
+symbols must be within 4GB of each other. Pointers are 64 bits. Programs can
+be statically or dynamically linked. This is the default code model.
+
+@item -mcmodel=large
+@opindex mcmodel=large
+Generate code for the large code model. This makes no assumptions about
+addresses and sizes of sections. Pointers are 64 bits. Programs can be
+statically linked only.
+
+@item -mstrict-align
+@opindex mstrict-align
+Do not assume that unaligned memory references will be handled by the system.
+
+@item -momit-leaf-frame-pointer
+@itemx -mno-omit-leaf-frame-pointer
+@opindex momit-leaf-frame-pointer
+@opindex mno-omit-leaf-frame-pointer
+Omit or keep the frame pointer in leaf functions. The former behaviour is the
+default.
+
+@item -mtls-dialect=desc
+@opindex mtls-dialect=desc
+Use TLS descriptors as the thread-local storage mechanism for dynamic accesses
+of TLS variables. This is the default.
+
+@item -mtls-dialect=traditional
+@opindex mtls-dialect=traditional
+Use traditional TLS as the thread-local storage mechanism for dynamic accesses
+of TLS variables.
+
+@item -march=@var{name}
+@opindex march
+Specify the name of the target architecture, optionally suffixed by one or
+more feature modifiers. This option has the form
+@option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
+only value for @var{arch} is @samp{armv8-a}. The possible values for
+@var{feature} are documented in the sub-section below.
+
+Where conflicting feature modifiers are specified, the right-most feature is
+used.
+
+GCC uses this name to determine what kind of instructions it can emit when
+generating assembly code. This option can be used in conjunction with or
+instead of the @option{-mcpu=} option.
+
+@item -mcpu=@var{name}
+@opindex mcpu
+Specify the name of the target processor, optionally suffixed by one or more
+feature modifiers. This option has the form
+@option{-mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
+possible values for @var{cpu} are @samp{generic}, @samp{large}. The
+possible values for @var{feature} are documented in the sub-section
+below.
+
+Where conflicting feature modifiers are specified, the right-most feature is
+used.
+
+GCC uses this name to determine what kind of instructions it can emit when
+generating assembly code.
+
+@item -mtune=@var{name}
+@opindex mtune
+Specify the name of the processor to tune the performance for. The code will
+be tuned as if the target processor were of the type specified in this option,
+but still using instructions compatible with the target processor specified
+by a @option{-mcpu=} option. This option cannot be suffixed by feature
+modifiers.
+
+@end table
+
+@subsubsection @option{-march} and @option{-mcpu} feature modifiers
+@cindex @option{-march} feature modifiers
+@cindex @option{-mcpu} feature modifiers
+Feature modifiers used with @option{-march} and @option{-mcpu} can be one
+the following:
+
+@table @samp
+@item crypto
+Enable Crypto extension. This implies Advanced SIMD is enabled.
+@item fp
+Enable floating-point instructions.
+@item simd
+Enable Advanced SIMD instructions. This implies floating-point instructions
+are enabled. This is the default for all current possible values for options
+@option{-march} and @option{-mcpu=}.
+@end table
+
@node Adapteva Epiphany Options
@subsection Adapteva Epiphany Options
@@ -11009,125 +11128,6 @@ purpose. The default is @option{-m1reg-none}.
@end table
-@node AArch64 Options
-@subsection AArch64 Options
-@cindex AArch64 Options
-
-These options are defined for AArch64 implementations:
-
-@table @gcctabopt
-
-@item -mbig-endian
-@opindex mbig-endian
-Generate big-endian code. This is the default when GCC is configured for an
-@samp{aarch64_be-*-*} target.
-
-@item -mgeneral-regs-only
-@opindex mgeneral-regs-only
-Generate code which uses only the general registers.
-
-@item -mlittle-endian
-@opindex mlittle-endian
-Generate little-endian code. This is the default when GCC is configured for an
-@samp{aarch64-*-*} but not an @samp{aarch64_be-*-*} target.
-
-@item -mcmodel=tiny
-@opindex mcmodel=tiny
-Generate code for the tiny code model. The program and its statically defined
-symbols must be within 1GB of each other. Pointers are 64 bits. Programs can
-be statically or dynamically linked. This model is not fully implemented and
-mostly treated as @samp{small}.
-
-@item -mcmodel=small
-@opindex mcmodel=small
-Generate code for the small code model. The program and its statically defined
-symbols must be within 4GB of each other. Pointers are 64 bits. Programs can
-be statically or dynamically linked. This is the default code model.
-
-@item -mcmodel=large
-@opindex mcmodel=large
-Generate code for the large code model. This makes no assumptions about
-addresses and sizes of sections. Pointers are 64 bits. Programs can be
-statically linked only.
-
-@item -mstrict-align
-@opindex mstrict-align
-Do not assume that unaligned memory references will be handled by the system.
-
-@item -momit-leaf-frame-pointer
-@itemx -mno-omit-leaf-frame-pointer
-@opindex momit-leaf-frame-pointer
-@opindex mno-omit-leaf-frame-pointer
-Omit or keep the frame pointer in leaf functions. The former behaviour is the
-default.
-
-@item -mtls-dialect=desc
-@opindex mtls-dialect=desc
-Use TLS descriptors as the thread-local storage mechanism for dynamic accesses
-of TLS variables. This is the default.
-
-@item -mtls-dialect=traditional
-@opindex mtls-dialect=traditional
-Use traditional TLS as the thread-local storage mechanism for dynamic accesses
-of TLS variables.
-
-@item -march=@var{name}
-@opindex march
-Specify the name of the target architecture, optionally suffixed by one or
-more feature modifiers. This option has the form
-@option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
-only value for @var{arch} is @samp{armv8-a}. The possible values for
-@var{feature} are documented in the sub-section below.
-
-Where conflicting feature modifiers are specified, the right-most feature is
-used.
-
-GCC uses this name to determine what kind of instructions it can emit when
-generating assembly code. This option can be used in conjunction with or
-instead of the @option{-mcpu=} option.
-
-@item -mcpu=@var{name}
-@opindex mcpu
-Specify the name of the target processor, optionally suffixed by one or more
-feature modifiers. This option has the form
-@option{-mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
-possible values for @var{cpu} are @samp{generic}, @samp{large}. The
-possible values for @var{feature} are documented in the sub-section
-below.
-
-Where conflicting feature modifiers are specified, the right-most feature is
-used.
-
-GCC uses this name to determine what kind of instructions it can emit when
-generating assembly code.
-
-@item -mtune=@var{name}
-@opindex mtune
-Specify the name of the processor to tune the performance for. The code will
-be tuned as if the target processor were of the type specified in this option,
-but still using instructions compatible with the target processor specified
-by a @option{-mcpu=} option. This option cannot be suffixed by feature
-modifiers.
-
-@end table
-
-@subsubsection @option{-march} and @option{-mcpu} feature modifiers
-@cindex @option{-march} feature modifiers
-@cindex @option{-mcpu} feature modifiers
-Feature modifiers used with @option{-march} and @option{-mcpu} can be one
-the following:
-
-@table @samp
-@item crypto
-Enable Crypto extension. This implies Advanced SIMD is enabled.
-@item fp
-Enable floating-point instructions.
-@item simd
-Enable Advanced SIMD instructions. This implies floating-point instructions
-are enabled. This is the default for all current possible values for options
-@option{-march} and @option{-mcpu=}.
-@end table
-
@node ARM Options
@subsection ARM Options
@cindex ARM options
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 9739e4f..63ec92f 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -1079,8 +1079,8 @@ the addressing register.
* Multi-Alternative:: When an insn has two alternative constraint-patterns.
* Class Preferences:: Constraints guide which hard register to put things in.
* Modifiers:: More precise control over effects of constraints.
-* Disable Insn Alternatives:: Disable insn alternatives using the @code{enabled} attribute.
* Machine Constraints:: Existing constraints for some particular machines.
+* Disable Insn Alternatives:: Disable insn alternatives using the @code{enabled} attribute.
* Define Constraints:: How to define machine-specific constraints.
* C Constraint Interface:: How to test constraints from C code.
@end menu
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Fix some texinfo 5.0 warnings in gcc/doc + libiberty
2013-02-21 16:05 Fix some texinfo 5.0 warnings in gcc/doc + libiberty Tobias Burnus
@ 2013-02-21 16:33 ` Andreas Schwab
2013-02-25 8:31 ` Tobias Burnus
1 sibling, 0 replies; 7+ messages in thread
From: Andreas Schwab @ 2013-02-21 16:33 UTC (permalink / raw)
To: Tobias Burnus; +Cc: gcc patches, gfortran
Tobias Burnus <burnus@net-b.de> writes:
> PS: I tried the following libiberty patch; it fixes a warning with texinfo
> 5.0. But I do not include it as it fails for some reason with an error
> with texinfo 4.13:
> ../../libiberty/libiberty.texi:250: Prev field of node `Functions' not
> pointed to.
> ../../libiberty//obstacks.texi:1: This node (Obstacks) has the bad Next.
> ...
obstacks.texi is using @chapter when it should use @subsection, so it
needs to be bracketed with @lowersections/@raisesections, like this:
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
index 74f70d2..f1e4bdd 100644
--- a/libiberty/libiberty.texi
+++ b/libiberty/libiberty.texi
@@ -82,8 +82,6 @@ License; for more information, see @ref{Library Copying}.
* Functions:: Available functions, macros, and global variables.
-* Obstacks:: Object Stacks.
-
* Licenses:: The various licenses under which libiberty sources are
distributed.
@@ -245,7 +243,11 @@ central location from which to use, maintain, and distribute them.
@c This is generated from the glibc manual using a make-obstacks-texi.sh
@c script of Phil's. Hope it's accurate.
+@lowersections
+@lowersections
@include obstacks.texi
+@raisesections
+@raisesections
@node Functions
@chapter Function, Variable, and Macro Listing.
diff --git a/libiberty/obstacks.texi b/libiberty/obstacks.texi
index a1b1b47..67780aa 100644
--- a/libiberty/obstacks.texi
+++ b/libiberty/obstacks.texi
@@ -1,4 +1,4 @@
-@node Obstacks,Licenses,Functions,Top
+@node Obstacks
@chapter Obstacks
@cindex obstacks
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Fix some texinfo 5.0 warnings in gcc/doc + libiberty
2013-02-21 16:05 Fix some texinfo 5.0 warnings in gcc/doc + libiberty Tobias Burnus
2013-02-21 16:33 ` Andreas Schwab
@ 2013-02-25 8:31 ` Tobias Burnus
2013-03-01 10:08 ` *ping* - " Tobias Burnus
1 sibling, 1 reply; 7+ messages in thread
From: Tobias Burnus @ 2013-02-25 8:31 UTC (permalink / raw)
To: gcc patches
[-- Attachment #1: Type: text/plain, Size: 1180 bytes --]
* PING *
(The attachment contains my original patch (simple rediff) and Andreas'
follow-up patch for libiberty.)
Tobias
Tobias Burnus wrote:
> This is a follow up to Jakub's patch.
>
> With texinfo 5.0 one gets a bunch of warnings. This patch reduces the
> number of warnings â but there are still warnings to be fixed.
>
> This patch solves most of the issues related to mismatches between the
> item order in the @menu and the actual @nodes. As always, there is the
> question whether the @node or the item in @menu should be changed. In
> one case, I had the choice to either add a new item under @menu or to
> change a @section into @subsection. I did the latter.
>
> Tested with "make info" and no new warnings in texinfo 5.0.
> Additionally, I used texinfo 4.13a with showed no warnings.
> OK for the trunk?
>
> Tobias
>
>
> PS: I tried the following libiberty patch; it fixes a warning with
> texinfo 5.0. But I do not include it as it fails for some reason with
> an error with texinfo 4.13:
> ../../libiberty/libiberty.texi:250: Prev field of node `Functions' not
> pointed to.
> ../../libiberty//obstacks.texi:1: This node (Obstacks) has the bad Next.
[-- Attachment #2: texinfo5-warn-fix-v2.diff --]
[-- Type: text/x-patch, Size: 19977 bytes --]
gcc/
2013-02-25 Tobias Burnus <burnus@net-b.de>
* doc/extended.texi (C Extensions): Change order in @menu
to match @node.
(Other MIPS Built-in Functions): Move last MIPS entry before
"picoChip Built-in Functions".
(SH Built-in Functions): Move after RX Built-in Functions.
* doc/gcc.texi (Introduction): Change order in @menu
to match @node.
* doc/md.texi (Constraints): Ditto.
* gty.texi (Type Information): Ditto.
(User-provided marking routines for template types): Make
subsection.
* doc/invoke.texi (AArch64 Options): Move before
"Adapteva Epiphany Options".
libiberty/
2013-02-25 Andreas Schwab <schwab@linux-m68k.org>
* obstacks.texi (Obstacks): Trim @node to only contain the
node name.
* libiberty.texi (Obstacks): Lower section.
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index a644b60..25a0191 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -30,8 +30,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Constructing Calls:: Dispatching a call to another function.
* Typeof:: @code{typeof}: referring to the type of an expression.
* Conditionals:: Omitting the middle operand of a @samp{?:} expression.
-* Long Long:: Double-word integers---@code{long long int}.
* __int128:: 128-bit integers---@code{__int128}.
+* Long Long:: Double-word integers---@code{long long int}.
* Complex:: Data types for complex numbers.
* Floating Types:: Additional Floating Types.
* Half-Precision:: Half-Precision Floating Point.
@@ -40,8 +40,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Fixed-Point:: Fixed-Point Types.
* Named Address Spaces::Named address spaces.
* Zero Length:: Zero-length arrays.
-* Variable Length:: Arrays whose length is computed at run time.
* Empty Structures:: Structures with no members.
+* Variable Length:: Arrays whose length is computed at run time.
* Variadic Macros:: Macros with a variable number of arguments.
* Escaped Newlines:: Slightly looser rules for escaped newlines.
* Subscripting:: Any array can be subscripted, even if not an lvalue.
@@ -50,8 +50,8 @@ extensions, accepted by GCC in C90 mode and in C++.
* Compound Literals:: Compound literals give structures, unions
or arrays as values.
* Designated Inits:: Labeling elements of initializers.
-* Cast to Union:: Casting to union type from any member of the union.
* Case Ranges:: `case 1 ... 9' and such.
+* Cast to Union:: Casting to union type from any member of the union.
* Mixed Declarations:: Mixing declarations and code.
* Function Attributes:: Declaring that functions have no side effects,
or that they can never return.
@@ -11679,6 +11679,18 @@ else
@end smallexample
@end table
+@node Other MIPS Built-in Functions
+@subsection Other MIPS Built-in Functions
+
+GCC provides other MIPS-specific built-in functions:
+
+@table @code
+@item void __builtin_mips_cache (int @var{op}, const volatile void *@var{addr})
+Insert a @samp{cache} instruction with operands @var{op} and @var{addr}.
+GCC defines the preprocessor macro @code{___GCC_HAVE_BUILTIN_MIPS_CACHE}
+when this function is available.
+@end table
+
@node picoChip Built-in Functions
@subsection picoChip Built-in Functions
@@ -11715,18 +11727,6 @@ implementing assertions.
@end table
-@node Other MIPS Built-in Functions
-@subsection Other MIPS Built-in Functions
-
-GCC provides other MIPS-specific built-in functions:
-
-@table @code
-@item void __builtin_mips_cache (int @var{op}, const volatile void *@var{addr})
-Insert a @samp{cache} instruction with operands @var{op} and @var{addr}.
-GCC defines the preprocessor macro @code{___GCC_HAVE_BUILTIN_MIPS_CACHE}
-when this function is available.
-@end table
-
@node PowerPC Built-in Functions
@subsection PowerPC Built-in Functions
@@ -13817,41 +13817,6 @@ if the VSX instruction set is available. The @samp{vec_vsx_ld} and
@samp{vec_vsx_st} built-in functions always generate the VSX @samp{LXVD2X},
@samp{LXVW4X}, @samp{STXVD2X}, and @samp{STXVW4X} instructions.
-@node SH Built-in Functions
-@subsection SH Built-in Functions
-The following built-in functions are supported on the SH1, SH2, SH3 and SH4
-families of processors:
-
-@deftypefn {Built-in Function} {void} __builtin_set_thread_pointer (void *@var{ptr})
-Sets the @samp{GBR} register to the specified value @var{ptr}. This is usually
-used by system code that manages threads and execution contexts. The compiler
-normally does not generate code that modifies the contents of @samp{GBR} and
-thus the value is preserved across function calls. Changing the @samp{GBR}
-value in user code must be done with caution, since the compiler might use
-@samp{GBR} in order to access thread local variables.
-
-@end deftypefn
-
-@deftypefn {Built-in Function} {void *} __builtin_thread_pointer (void)
-Returns the value that is currently set in the @samp{GBR} register.
-Memory loads and stores that use the thread pointer as a base address are
-turned into @samp{GBR} based displacement loads and stores, if possible.
-For example:
-@smallexample
-struct my_tcb
-@{
- int a, b, c, d, e;
-@};
-
-int get_tcb_value (void)
-@{
- // Generate @samp{mov.l @@(8,gbr),r0} instruction
- return ((my_tcb*)__builtin_thread_pointer ())->c;
-@}
-
-@end smallexample
-@end deftypefn
-
@node RX Built-in Functions
@subsection RX Built-in Functions
GCC supports some of the RX instructions which cannot be expressed in
@@ -13967,6 +13932,41 @@ bit in the processor status word.
Generates the @code{wait} machine instruction.
@end deftypefn
+@node SH Built-in Functions
+@subsection SH Built-in Functions
+The following built-in functions are supported on the SH1, SH2, SH3 and SH4
+families of processors:
+
+@deftypefn {Built-in Function} {void} __builtin_set_thread_pointer (void *@var{ptr})
+Sets the @samp{GBR} register to the specified value @var{ptr}. This is usually
+used by system code that manages threads and execution contexts. The compiler
+normally does not generate code that modifies the contents of @samp{GBR} and
+thus the value is preserved across function calls. Changing the @samp{GBR}
+value in user code must be done with caution, since the compiler might use
+@samp{GBR} in order to access thread local variables.
+
+@end deftypefn
+
+@deftypefn {Built-in Function} {void *} __builtin_thread_pointer (void)
+Returns the value that is currently set in the @samp{GBR} register.
+Memory loads and stores that use the thread pointer as a base address are
+turned into @samp{GBR} based displacement loads and stores, if possible.
+For example:
+@smallexample
+struct my_tcb
+@{
+ int a, b, c, d, e;
+@};
+
+int get_tcb_value (void)
+@{
+ // Generate @samp{mov.l @@(8,gbr),r0} instruction
+ return ((my_tcb*)__builtin_thread_pointer ())->c;
+@}
+
+@end smallexample
+@end deftypefn
+
@node SPARC VIS Built-in Functions
@subsection SPARC VIS Built-in Functions
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index 8f6f11f..02b81cf 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -132,8 +132,8 @@ Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
* Standards:: Language standards supported by GCC.
* Invoking GCC:: Command options supported by @samp{gcc}.
* C Implementation:: How GCC implements the ISO C specification.
-* C Extensions:: GNU extensions to the C language family.
* C++ Implementation:: How GCC implements the ISO C++ specification.
+* C Extensions:: GNU extensions to the C language family.
* C++ Extensions:: GNU extensions to the C++ language.
* Objective-C:: GNU Objective-C runtime features.
* Compatibility:: Binary Compatibility
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi
index a752178..82e8e4f 100644
--- a/gcc/doc/gty.texi
+++ b/gcc/doc/gty.texi
@@ -87,8 +87,8 @@ data members.
@menu
* GTY Options:: What goes inside a @code{GTY(())}.
-* GGC Roots:: Making global variables GGC roots.
* User GC:: Adding user-provided GC marking routines.
+* GGC Roots:: Making global variables GGC roots.
* Files:: How the generated files work.
* Invoking the garbage collector:: How to invoke the garbage collector.
* Troubleshooting:: When something does not work as expected.
@@ -515,7 +515,7 @@ Note that the rules for the pointer walker @code{gt_pch_nx (my_struct
case, the operation @code{op} must be applied to the @emph{address} of
every pointer field.
-@section User-provided marking routines for template types
+@subsection User-provided marking routines for template types
When a template type @code{TP} is marked with @code{GTY}, all
instances of that type are considered user-provided types. This means
that the individual instances of @code{TP} do not need to be marked
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f18d07e..c789b93 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -10855,6 +10855,125 @@ platform.
* zSeries Options::
@end menu
+@node AArch64 Options
+@subsection AArch64 Options
+@cindex AArch64 Options
+
+These options are defined for AArch64 implementations:
+
+@table @gcctabopt
+
+@item -mbig-endian
+@opindex mbig-endian
+Generate big-endian code. This is the default when GCC is configured for an
+@samp{aarch64_be-*-*} target.
+
+@item -mgeneral-regs-only
+@opindex mgeneral-regs-only
+Generate code which uses only the general registers.
+
+@item -mlittle-endian
+@opindex mlittle-endian
+Generate little-endian code. This is the default when GCC is configured for an
+@samp{aarch64-*-*} but not an @samp{aarch64_be-*-*} target.
+
+@item -mcmodel=tiny
+@opindex mcmodel=tiny
+Generate code for the tiny code model. The program and its statically defined
+symbols must be within 1GB of each other. Pointers are 64 bits. Programs can
+be statically or dynamically linked. This model is not fully implemented and
+mostly treated as @samp{small}.
+
+@item -mcmodel=small
+@opindex mcmodel=small
+Generate code for the small code model. The program and its statically defined
+symbols must be within 4GB of each other. Pointers are 64 bits. Programs can
+be statically or dynamically linked. This is the default code model.
+
+@item -mcmodel=large
+@opindex mcmodel=large
+Generate code for the large code model. This makes no assumptions about
+addresses and sizes of sections. Pointers are 64 bits. Programs can be
+statically linked only.
+
+@item -mstrict-align
+@opindex mstrict-align
+Do not assume that unaligned memory references will be handled by the system.
+
+@item -momit-leaf-frame-pointer
+@itemx -mno-omit-leaf-frame-pointer
+@opindex momit-leaf-frame-pointer
+@opindex mno-omit-leaf-frame-pointer
+Omit or keep the frame pointer in leaf functions. The former behaviour is the
+default.
+
+@item -mtls-dialect=desc
+@opindex mtls-dialect=desc
+Use TLS descriptors as the thread-local storage mechanism for dynamic accesses
+of TLS variables. This is the default.
+
+@item -mtls-dialect=traditional
+@opindex mtls-dialect=traditional
+Use traditional TLS as the thread-local storage mechanism for dynamic accesses
+of TLS variables.
+
+@item -march=@var{name}
+@opindex march
+Specify the name of the target architecture, optionally suffixed by one or
+more feature modifiers. This option has the form
+@option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
+only value for @var{arch} is @samp{armv8-a}. The possible values for
+@var{feature} are documented in the sub-section below.
+
+Where conflicting feature modifiers are specified, the right-most feature is
+used.
+
+GCC uses this name to determine what kind of instructions it can emit when
+generating assembly code. This option can be used in conjunction with or
+instead of the @option{-mcpu=} option.
+
+@item -mcpu=@var{name}
+@opindex mcpu
+Specify the name of the target processor, optionally suffixed by one or more
+feature modifiers. This option has the form
+@option{-mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
+possible values for @var{cpu} are @samp{generic}, @samp{large}. The
+possible values for @var{feature} are documented in the sub-section
+below.
+
+Where conflicting feature modifiers are specified, the right-most feature is
+used.
+
+GCC uses this name to determine what kind of instructions it can emit when
+generating assembly code.
+
+@item -mtune=@var{name}
+@opindex mtune
+Specify the name of the processor to tune the performance for. The code will
+be tuned as if the target processor were of the type specified in this option,
+but still using instructions compatible with the target processor specified
+by a @option{-mcpu=} option. This option cannot be suffixed by feature
+modifiers.
+
+@end table
+
+@subsubsection @option{-march} and @option{-mcpu} feature modifiers
+@cindex @option{-march} feature modifiers
+@cindex @option{-mcpu} feature modifiers
+Feature modifiers used with @option{-march} and @option{-mcpu} can be one
+the following:
+
+@table @samp
+@item crypto
+Enable Crypto extension. This implies Advanced SIMD is enabled.
+@item fp
+Enable floating-point instructions.
+@item simd
+Enable Advanced SIMD instructions. This implies floating-point instructions
+are enabled. This is the default for all current possible values for options
+@option{-march} and @option{-mcpu=}.
+@end table
+
@node Adapteva Epiphany Options
@subsection Adapteva Epiphany Options
@@ -11011,125 +11130,6 @@ purpose. The default is @option{-m1reg-none}.
@end table
-@node AArch64 Options
-@subsection AArch64 Options
-@cindex AArch64 Options
-
-These options are defined for AArch64 implementations:
-
-@table @gcctabopt
-
-@item -mbig-endian
-@opindex mbig-endian
-Generate big-endian code. This is the default when GCC is configured for an
-@samp{aarch64_be-*-*} target.
-
-@item -mgeneral-regs-only
-@opindex mgeneral-regs-only
-Generate code which uses only the general registers.
-
-@item -mlittle-endian
-@opindex mlittle-endian
-Generate little-endian code. This is the default when GCC is configured for an
-@samp{aarch64-*-*} but not an @samp{aarch64_be-*-*} target.
-
-@item -mcmodel=tiny
-@opindex mcmodel=tiny
-Generate code for the tiny code model. The program and its statically defined
-symbols must be within 1GB of each other. Pointers are 64 bits. Programs can
-be statically or dynamically linked. This model is not fully implemented and
-mostly treated as @samp{small}.
-
-@item -mcmodel=small
-@opindex mcmodel=small
-Generate code for the small code model. The program and its statically defined
-symbols must be within 4GB of each other. Pointers are 64 bits. Programs can
-be statically or dynamically linked. This is the default code model.
-
-@item -mcmodel=large
-@opindex mcmodel=large
-Generate code for the large code model. This makes no assumptions about
-addresses and sizes of sections. Pointers are 64 bits. Programs can be
-statically linked only.
-
-@item -mstrict-align
-@opindex mstrict-align
-Do not assume that unaligned memory references will be handled by the system.
-
-@item -momit-leaf-frame-pointer
-@itemx -mno-omit-leaf-frame-pointer
-@opindex momit-leaf-frame-pointer
-@opindex mno-omit-leaf-frame-pointer
-Omit or keep the frame pointer in leaf functions. The former behaviour is the
-default.
-
-@item -mtls-dialect=desc
-@opindex mtls-dialect=desc
-Use TLS descriptors as the thread-local storage mechanism for dynamic accesses
-of TLS variables. This is the default.
-
-@item -mtls-dialect=traditional
-@opindex mtls-dialect=traditional
-Use traditional TLS as the thread-local storage mechanism for dynamic accesses
-of TLS variables.
-
-@item -march=@var{name}
-@opindex march
-Specify the name of the target architecture, optionally suffixed by one or
-more feature modifiers. This option has the form
-@option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
-only value for @var{arch} is @samp{armv8-a}. The possible values for
-@var{feature} are documented in the sub-section below.
-
-Where conflicting feature modifiers are specified, the right-most feature is
-used.
-
-GCC uses this name to determine what kind of instructions it can emit when
-generating assembly code. This option can be used in conjunction with or
-instead of the @option{-mcpu=} option.
-
-@item -mcpu=@var{name}
-@opindex mcpu
-Specify the name of the target processor, optionally suffixed by one or more
-feature modifiers. This option has the form
-@option{-mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
-possible values for @var{cpu} are @samp{generic}, @samp{large}. The
-possible values for @var{feature} are documented in the sub-section
-below.
-
-Where conflicting feature modifiers are specified, the right-most feature is
-used.
-
-GCC uses this name to determine what kind of instructions it can emit when
-generating assembly code.
-
-@item -mtune=@var{name}
-@opindex mtune
-Specify the name of the processor to tune the performance for. The code will
-be tuned as if the target processor were of the type specified in this option,
-but still using instructions compatible with the target processor specified
-by a @option{-mcpu=} option. This option cannot be suffixed by feature
-modifiers.
-
-@end table
-
-@subsubsection @option{-march} and @option{-mcpu} feature modifiers
-@cindex @option{-march} feature modifiers
-@cindex @option{-mcpu} feature modifiers
-Feature modifiers used with @option{-march} and @option{-mcpu} can be one
-the following:
-
-@table @samp
-@item crypto
-Enable Crypto extension. This implies Advanced SIMD is enabled.
-@item fp
-Enable floating-point instructions.
-@item simd
-Enable Advanced SIMD instructions. This implies floating-point instructions
-are enabled. This is the default for all current possible values for options
-@option{-march} and @option{-mcpu=}.
-@end table
-
@node ARM Options
@subsection ARM Options
@cindex ARM options
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 2ece55c..b84a202 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -1079,8 +1079,8 @@ the addressing register.
* Multi-Alternative:: When an insn has two alternative constraint-patterns.
* Class Preferences:: Constraints guide which hard register to put things in.
* Modifiers:: More precise control over effects of constraints.
-* Disable Insn Alternatives:: Disable insn alternatives using the @code{enabled} attribute.
* Machine Constraints:: Existing constraints for some particular machines.
+* Disable Insn Alternatives:: Disable insn alternatives using the @code{enabled} attribute.
* Define Constraints:: How to define machine-specific constraints.
* C Constraint Interface:: How to test constraints from C code.
@end menu
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
index 74f70d2..f1e4bdd 100644
--- a/libiberty/libiberty.texi
+++ b/libiberty/libiberty.texi
@@ -82,8 +82,6 @@ License; for more information, see @ref{Library Copying}.
* Functions:: Available functions, macros, and global variables.
-* Obstacks:: Object Stacks.
-
* Licenses:: The various licenses under which libiberty sources are
distributed.
@@ -245,7 +243,11 @@ central location from which to use, maintain, and distribute them.
@c This is generated from the glibc manual using a make-obstacks-texi.sh
@c script of Phil's. Hope it's accurate.
+@lowersections
+@lowersections
@include obstacks.texi
+@raisesections
+@raisesections
@node Functions
@chapter Function, Variable, and Macro Listing.
diff --git a/libiberty/obstacks.texi b/libiberty/obstacks.texi
index a1b1b47..67780aa 100644
--- a/libiberty/obstacks.texi
+++ b/libiberty/obstacks.texi
@@ -1,4 +1,4 @@
-@node Obstacks,Licenses,Functions,Top
+@node Obstacks
@chapter Obstacks
@cindex obstacks
^ permalink raw reply [flat|nested] 7+ messages in thread
* *ping* - Re: Fix some texinfo 5.0 warnings in gcc/doc + libiberty
2013-02-25 8:31 ` Tobias Burnus
@ 2013-03-01 10:08 ` Tobias Burnus
2013-03-01 17:05 ` Joseph S. Myers
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Burnus @ 2013-03-01 10:08 UTC (permalink / raw)
To: gcc patches; +Cc: Gerald Pfeifer, Joseph S. Myers
* PING * â The patch is rather simple and on the verge to be obvious.
http://gcc.gnu.org/ml/gcc-patches/2013-02/msg01106.html
Tobias
Tobias Burnus wrote:
> (The attachment contains my original patch (simple rediff) and
> Andreas' follow-up patch for libiberty.)
>
> Tobias
>
> Tobias Burnus wrote:
>> This is a follow up to Jakub's patch.
>>
>> With texinfo 5.0 one gets a bunch of warnings. This patch reduces the
>> number of warnings â but there are still warnings to be fixed.
>>
>> This patch solves most of the issues related to mismatches between
>> the item order in the @menu and the actual @nodes. As always, there
>> is the question whether the @node or the item in @menu should be
>> changed. In one case, I had the choice to either add a new item under
>> @menu or to change a @section into @subsection. I did the latter.
>>
>> Tested with "make info" and no new warnings in texinfo 5.0.
>> Additionally, I used texinfo 4.13a with showed no warnings.
>> OK for the trunk?
>>
>> Tobias
>>
>>
>> PS: I tried the following libiberty patch; it fixes a warning with
>> texinfo 5.0. But I do not include it as it fails for some reason with
>> an error with texinfo 4.13:
>> ../../libiberty/libiberty.texi:250: Prev field of node `Functions'
>> not pointed to.
>> ../../libiberty//obstacks.texi:1: This node (Obstacks) has the bad Next.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: *ping* - Re: Fix some texinfo 5.0 warnings in gcc/doc + libiberty
2013-03-01 10:08 ` *ping* - " Tobias Burnus
@ 2013-03-01 17:05 ` Joseph S. Myers
2013-03-01 19:20 ` Tobias Burnus
0 siblings, 1 reply; 7+ messages in thread
From: Joseph S. Myers @ 2013-03-01 17:05 UTC (permalink / raw)
To: Tobias Burnus; +Cc: gcc patches, Gerald Pfeifer
On Fri, 1 Mar 2013, Tobias Burnus wrote:
> http://gcc.gnu.org/ml/gcc-patches/2013-02/msg01106.html
OK, though for the libiberty patch it would be good if someone can find
the make-obstacks-texi.sh script referred to in libiberty.texi, check it
in and get obstacks.texi exactly in sync with the output of that script
run on current glibc sources.
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: *ping* - Re: Fix some texinfo 5.0 warnings in gcc/doc + libiberty
2013-03-01 17:05 ` Joseph S. Myers
@ 2013-03-01 19:20 ` Tobias Burnus
2013-03-06 2:06 ` Joseph S. Myers
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Burnus @ 2013-03-01 19:20 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: gcc patches, Gerald Pfeifer
[-- Attachment #1: Type: text/plain, Size: 455 bytes --]
Joseph S. Myers wrote:
> OK, though for the libiberty patch it would be good if someone can find
> the make-obstacks-texi.sh script referred to in libiberty.texi, check it
> in and get obstacks.texi exactly in sync with the output of that script
> run on current glibc sources.
I couldn't find it, but I created a Perl version of the unknown script.
Is the attached patch OK? (I tested it with "make info html pdf" using
(only) texinfo-4.13a.)
Tobias
[-- Attachment #2: obstacks.diff --]
[-- Type: text/x-patch, Size: 8870 bytes --]
contrib/
2012-03-01 Tobias Burnus <burnus@net-b.de>
* make-obstacks-texi.pl: New.
libiberty/
2012-03-01 Tobias Burnus <burnus@net-b.de>
* libiberty.texi: Update comment, remove lowersections.
* obstacks.texi: Regenerate.
diff --git a/contrib/make-obstacks-texi.pl b/contrib/make-obstacks-texi.pl
new file mode 100755
index 0000000..8128dd6
--- /dev/null
+++ b/contrib/make-obstacks-texi.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl -w
+
+# (C) 2012 Free Software Foundation
+# Contributed by Tobias Burnus
+#
+# This script is Free Software, and it can be copied, distributed and
+# modified as defined in the GNU General Public License. A copy of
+# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
+
+use strict;
+use File::Basename;
+
+
+if ($#ARGV != 0 or $ARGV[0] eq "") {
+ my $name = basename($0);
+
+ print "\nUSAGE: `$name` memory.texi\n\n";
+ print "Reads GLIBC's manual/memory.texi and extracts the obstacks section\n"
+ ."Redirect the output to update GCC's libiberty/obstacks.texi\n\n";
+ exit 1;
+}
+
+open (IN, "<$ARGV[0]") || die "Cannot open '$ARGV[0]': $!";
+my $data = join ("", <IN>);
+close (IN);
+
+$data =~ s/.*\@node Obstacks\n/\@node Obstacks\n/s;
+$data =~ s/\n\@node [^\n]+\n\@subsection.*/\n/s;
+
+# Add refs to GLIBC
+$data =~ s/(\@p?xref{[^}]*)}/$1, , , libc, The GNU C Library Reference Manual}/gs;
+
+
+# And undo the refs which are in this file
+my @nodes = grep /^\@node /, (split /\n/, $data);
+
+foreach my $node (@nodes) {
+ $node =~ s/\@node //;
+ $node =~ s/,.*//;
+ $node =~ s/ / *\n?/g;
+ chomp ($node);
+
+ $data =~ s/(\@p?xref{$node), , , libc, The GNU C Library Reference Manual}/$1}/gsi;
+}
+
+print $data;
diff --git a/libiberty/.obstacks.texi.swp b/libiberty/.obstacks.texi.swp
new file mode 100644
index 0000000..545bf97
Binary files /dev/null and b/libiberty/.obstacks.texi.swp differ
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
index f1e4bdd..f4af66d 100644
--- a/libiberty/libiberty.texi
+++ b/libiberty/libiberty.texi
@@ -241,13 +241,8 @@ central location from which to use, maintain, and distribute them.
* Obstacks:: Stacks of arbitrary objects.
@end menu
-@c This is generated from the glibc manual using a make-obstacks-texi.sh
-@c script of Phil's. Hope it's accurate.
-@lowersections
-@lowersections
+@c This is generated from the glibc manual using contrib/make-obstacks-texi.pl
@include obstacks.texi
-@raisesections
-@raisesections
@node Functions
@chapter Function, Variable, and Macro Listing.
diff --git a/libiberty/obstacks.texi b/libiberty/obstacks.texi
index 67780aa..adcd810 100644
--- a/libiberty/obstacks.texi
+++ b/libiberty/obstacks.texi
@@ -1,5 +1,5 @@
@node Obstacks
-@chapter Obstacks
+@subsection Obstacks
@cindex obstacks
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.
@menu
-* Creating Obstacks:: How to declare an obstack in your program.
-* Preparing for Obstacks:: Preparations needed before you can
- use obstacks.
+* Creating Obstacks:: How to declare an obstack in your program.
+* Preparing for Obstacks:: Preparations needed before you can
+ use obstacks.
* Allocation in an Obstack:: Allocating objects in an obstack.
* Freeing Obstack Objects:: Freeing objects in an obstack.
-* Obstack Functions:: The obstack functions are both
- functions and macros.
+* Obstack Functions:: The obstack functions are both
+ functions and macros.
* Growing Objects:: Making an object bigger by stages.
-* Extra Fast Growing:: Extra-high-efficiency (though more
- complicated) growing objects.
+* Extra Fast Growing:: Extra-high-efficiency (though more
+ complicated) growing objects.
* Status of an Obstack:: Inquiries about the status of an obstack.
* Obstacks Data Alignment:: Controlling alignment of objects in obstacks.
* Obstack Chunks:: How obstacks obtain and release chunks;
- efficiency considerations.
+ efficiency considerations.
* Summary of Obstacks::
@end menu
@node Creating Obstacks
-@section Creating Obstacks
+@subsubsection Creating Obstacks
The utilities for manipulating obstacks are declared in the header
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.
@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
must include the header file @file{obstack.h}, like this:
@@ -160,7 +160,7 @@ obstack_alloc_failed_handler = &my_obstack_alloc_failed;
@end defvar
@node Allocation in an Obstack
-@section Allocation in an Obstack
+@subsubsection Allocation in an Obstack
@cindex allocation (obstacks)
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}).
@node Freeing Obstack Objects
-@section Freeing Objects in an Obstack
+@subsubsection Freeing Objects in an Obstack
@cindex freeing (obstacks)
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.
@node Obstack Functions
-@section Obstack Functions and Macros
+@subsubsection Obstack Functions and Macros
@cindex macros
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.
@node Growing Objects
-@section Growing Objects
+@subsubsection Growing Objects
@cindex growing objects (in 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.
@node Extra Fast Growing
-@section Extra Fast Growing Objects
+@subsubsection Extra Fast Growing Objects
@cindex efficiency and obstacks
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
@node Status of an Obstack
-@section Status of an Obstack
+@subsubsection Status of an Obstack
@cindex obstack status
@cindex status of obstack
@@ -580,12 +580,13 @@ obstack_next_free (@var{obstack-ptr}) - obstack_base (@var{obstack-ptr})
@end deftypefun
@node Obstacks Data Alignment
-@section Alignment of Data in Obstacks
+@subsubsection Alignment of Data in Obstacks
@cindex alignment (in obstacks)
Each obstack has an @dfn{alignment boundary}; each object allocated in
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
@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
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
-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
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.
@node Obstack Chunks
-@section Obstack Chunks
+@subsubsection Obstack Chunks
@cindex efficiency of chunks
@cindex chunks
@@ -676,7 +679,7 @@ if (obstack_chunk_size (obstack_ptr) < @var{new-chunk-size})
@end smallexample
@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
takes the address of an obstack (@code{struct obstack *}) as its first
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: *ping* - Re: Fix some texinfo 5.0 warnings in gcc/doc + libiberty
2013-03-01 19:20 ` Tobias Burnus
@ 2013-03-06 2:06 ` Joseph S. Myers
0 siblings, 0 replies; 7+ messages in thread
From: Joseph S. Myers @ 2013-03-06 2:06 UTC (permalink / raw)
To: Tobias Burnus; +Cc: gcc patches, Gerald Pfeifer
On Fri, 1 Mar 2013, Tobias Burnus wrote:
> Joseph S. Myers wrote:
> > OK, though for the libiberty patch it would be good if someone can find
> > the make-obstacks-texi.sh script referred to in libiberty.texi, check it
> > in and get obstacks.texi exactly in sync with the output of that script
> > run on current glibc sources.
>
> I couldn't find it, but I created a Perl version of the unknown script.
>
> Is the attached patch OK? (I tested it with "make info html pdf" using (only)
> texinfo-4.13a.)
OK, with 2013 used as copyright date instead of 2012.
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-03-06 2:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-21 16:05 Fix some texinfo 5.0 warnings in gcc/doc + libiberty Tobias Burnus
2013-02-21 16:33 ` Andreas Schwab
2013-02-25 8:31 ` Tobias Burnus
2013-03-01 10:08 ` *ping* - " Tobias Burnus
2013-03-01 17:05 ` Joseph S. Myers
2013-03-01 19:20 ` Tobias Burnus
2013-03-06 2:06 ` Joseph S. Myers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).