mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-05 10:20:19 +08:00
c-tree.texi: Fix overfull hboxes.
2002-09-04 Janis Johnson <janis187@us.ibm.com> * doc/c-tree.texi: Fix overfull hboxes. * doc/cppopts.texi: Ditto. * doc/extend.texi: Ditto. * doc/gty.texi: Ditto. * doc/invoke.texi: Ditto. * doc/makefile.texi: Ditto. * doc/rtl.texi: Ditto. * doc/standards.texi: Ditto. * doc/tm.texi: Ditto. From-SVN: r56802
This commit is contained in:
parent
7b98d4549b
commit
478c9e72c6
@ -1,3 +1,15 @@
|
||||
2002-09-04 Janis Johnson <janis187@us.ibm.com>
|
||||
|
||||
* doc/c-tree.texi: Fix overfull hboxes.
|
||||
* doc/cppopts.texi: Ditto.
|
||||
* doc/extend.texi: Ditto.
|
||||
* doc/gty.texi: Ditto.
|
||||
* doc/invoke.texi: Ditto.
|
||||
* doc/makefile.texi: Ditto.
|
||||
* doc/rtl.texi: Ditto.
|
||||
* doc/standards.texi: Ditto.
|
||||
* doc/tm.texi: Ditto.
|
||||
|
||||
2002-09-04 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* c-common.c (builtin_define_with_hex_fp_value): New.
|
||||
|
@ -1203,11 +1203,11 @@ Then, if @code{THUNK_VCALL_OFFSET} (an @code{INTEGER_CST}) is nonzero
|
||||
the adjusted @code{this} pointer must be adjusted again. The complete
|
||||
calculation is given by the following pseudo-code:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
this += THUNK_DELTA
|
||||
if (THUNK_VCALL_OFFSET)
|
||||
this += (*((ptrdiff_t **) this))[THUNK_VCALL_OFFSET]
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
Finally, the thunk should jump to the location given
|
||||
by @code{DECL_INITIAL}; this will always be an expression for the
|
||||
|
@ -600,10 +600,10 @@ standard-conforming modes it converts them. See the @option{-std} and
|
||||
|
||||
The nine trigraphs and their replacements are
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
Trigraph: ??( ??) ??< ??> ??= ??/ ??' ??! ??-
|
||||
Replacement: [ ] @{ @} # \ ^ | ~
|
||||
@end example
|
||||
@end smallexample
|
||||
@end ifclear
|
||||
|
||||
@item -remap
|
||||
|
@ -1445,9 +1445,9 @@ variable number of arguments much as a function can. The syntax for
|
||||
defining the macro is similar to that of a function. Here is an
|
||||
example:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
Here @samp{@dots{}} is a @dfn{variable argument}. In the invocation of
|
||||
such a macro, it represents the zero or more tokens until the closing
|
||||
@ -1486,9 +1486,9 @@ string.
|
||||
To help solve this problem, CPP behaves specially for variable arguments
|
||||
used with the token paste operator, @samp{##}. If instead you write
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
#define debug(format, ...) fprintf (stderr, format, ## __VA_ARGS__)
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
and if the variable arguments are omitted or empty, the @samp{##}
|
||||
operator causes the preprocessor to remove the comma before it. If you
|
||||
@ -1798,9 +1798,9 @@ nested subobject to initialize; the list is taken relative to the
|
||||
subobject corresponding to the closest surrounding brace pair. For
|
||||
example, with the @samp{struct point} declaration above:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
struct point ptarray[10] = @{ [2].y = yv2, [2].x = xv2, [0].x = xv0 @};
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
If the same field is initialized multiple times, it will have value from
|
||||
@ -3420,7 +3420,7 @@ any other type of objects, just like the @code{char} type. See
|
||||
|
||||
Example of use:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
typedef short __attribute__((__may_alias__)) short_a;
|
||||
|
||||
int
|
||||
@ -3436,7 +3436,7 @@ main (void)
|
||||
|
||||
exit(0);
|
||||
@}
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
If you replaced @code{short_a} with @code{short} in the variable
|
||||
declaration, the above program would abort when compiled with
|
||||
@ -4688,13 +4688,15 @@ as @var{exp2}.
|
||||
Example:
|
||||
|
||||
@smallexample
|
||||
#define foo(x) \
|
||||
__builtin_choose_expr (__builtin_types_compatible_p (typeof (x), double), \
|
||||
foo_double (x), \
|
||||
__builtin_choose_expr (__builtin_types_compatible_p (typeof (x), float), \
|
||||
foo_float (x), \
|
||||
/* @r{The void expression results in a compile-time error} \
|
||||
@r{when assigning the result to something.} */ \
|
||||
#define foo(x) \
|
||||
__builtin_choose_expr ( \
|
||||
__builtin_types_compatible_p (typeof (x), double), \
|
||||
foo_double (x), \
|
||||
__builtin_choose_expr ( \
|
||||
__builtin_types_compatible_p (typeof (x), float), \
|
||||
foo_float (x), \
|
||||
/* @r{The void expression results in a compile-time error} \
|
||||
@r{when assigning the result to something.} */ \
|
||||
(void)0))
|
||||
@end smallexample
|
||||
|
||||
@ -7289,10 +7291,10 @@ inclusive. Lower numbers indicate a higher priority.
|
||||
In the following example, @code{A} would normally be created before
|
||||
@code{B}, but the @code{init_priority} attribute has reversed that order:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
Some_Class A __attribute__ ((init_priority (2000)));
|
||||
Some_Class B __attribute__ ((init_priority (543)));
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
Note that the particular values of @var{priority} do not matter; only their
|
||||
@ -7318,7 +7320,7 @@ appropriately. However, if C++ code only needs to execute destructors
|
||||
when Java exceptions are thrown through it, GCC will guess incorrectly.
|
||||
Sample problematic code is:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
struct S @{ ~S(); @};
|
||||
extern void bar(); // is written in Java, and may throw exceptions
|
||||
void foo()
|
||||
@ -7326,7 +7328,7 @@ Sample problematic code is:
|
||||
S s;
|
||||
bar();
|
||||
@}
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
The usual effect of an incorrect guess is a link failure, complaining of
|
||||
|
@ -95,18 +95,21 @@ option is a fragment of C code that calculates the length.
|
||||
|
||||
The second case is when a structure or a global variable contains a
|
||||
pointer to an array, like this:
|
||||
@verbatim
|
||||
tree * GTY ((length ("%h.regno_pointer_align_length"))) regno_decl;
|
||||
@end verbatim
|
||||
@smallexample
|
||||
tree *
|
||||
GTY ((length ("%h.regno_pointer_align_length"))) regno_decl;
|
||||
@end smallexample
|
||||
In this case, @code{regno_decl} has been allocated by writing something like
|
||||
@verbatim
|
||||
x->regno_decl = ggc_alloc (x->regno_pointer_align_length * sizeof (tree));
|
||||
@end verbatim
|
||||
@smallexample
|
||||
x->regno_decl =
|
||||
ggc_alloc (x->regno_pointer_align_length * sizeof (tree));
|
||||
@end smallexample
|
||||
and the @code{length} provides the length of the field.
|
||||
|
||||
This second use of @code{length} also works on global variables, like:
|
||||
@verbatim
|
||||
static GTY((length ("reg_base_value_size"))) rtx *reg_base_value;
|
||||
static GTY((length ("reg_base_value_size")))
|
||||
rtx *reg_base_value;
|
||||
@end verbatim
|
||||
|
||||
@findex skip
|
||||
@ -126,17 +129,17 @@ field really isn't ever used.
|
||||
The type machinery needs to be told which field of a @code{union} is
|
||||
currently active. This is done by giving each field a constant @code{tag}
|
||||
value, and then specifying a discriminator using @code{desc}. For example,
|
||||
@verbatim
|
||||
@smallexample
|
||||
struct tree_binding GTY(())
|
||||
{
|
||||
@{
|
||||
struct tree_common common;
|
||||
union tree_binding_u {
|
||||
union tree_binding_u @{
|
||||
tree GTY ((tag ("0"))) scope;
|
||||
struct cp_binding_level * GTY ((tag ("1"))) level;
|
||||
} GTY ((desc ("BINDING_HAS_LEVEL_P ((tree)&%0)"))) scope;
|
||||
@} GTY ((desc ("BINDING_HAS_LEVEL_P ((tree)&%0)"))) scope;
|
||||
tree value;
|
||||
};
|
||||
@end verbatim
|
||||
@};
|
||||
@end smallexample
|
||||
|
||||
In the @code{desc} option, the ``current structure'' is the union that
|
||||
it discriminates. Use @code{%1} to mean the structure containing it.
|
||||
|
@ -270,11 +270,12 @@ in the following sections.
|
||||
-fif-conversion -fif-conversion2 @gol
|
||||
-finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol
|
||||
-fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol
|
||||
-fmove-all-movables -fnew-ra -fno-default-inline -fno-defer-pop @gol
|
||||
-fmove-all-movables -fnew-ra -fno-default-inline @gol
|
||||
-fno-defer-pop @gol
|
||||
-fno-function-cse -fno-guess-branch-probability @gol
|
||||
-fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol
|
||||
-funsafe-math-optimizations -ffinite-math-only -fno-trapping-math @gol
|
||||
-fno-zero-initialized-in-bss @gol
|
||||
-funsafe-math-optimizations -ffinite-math-only @gol
|
||||
-fno-trapping-math -fno-zero-initialized-in-bss @gol
|
||||
-fomit-frame-pointer -foptimize-register-move @gol
|
||||
-foptimize-sibling-calls -fprefetch-loop-arrays @gol
|
||||
-freduce-all-givs -fregmove -frename-registers @gol
|
||||
@ -282,8 +283,8 @@ in the following sections.
|
||||
-frerun-cse-after-loop -frerun-loop-opt @gol
|
||||
-fschedule-insns -fschedule-insns2 -fsignaling-nans @gol
|
||||
-fsingle-precision-constant -fssa -fssa-ccp -fssa-dce @gol
|
||||
-fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps -ftrapv @gol
|
||||
-funroll-all-loops -funroll-loops @gol
|
||||
-fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps @gol
|
||||
-ftrapv -funroll-all-loops -funroll-loops @gol
|
||||
--param @var{name}=@var{value}
|
||||
-O -O0 -O1 -O2 -O3 -Os}
|
||||
|
||||
@ -338,7 +339,8 @@ in the following sections.
|
||||
@emph{M68hc1x Options}
|
||||
@gccoptlist{
|
||||
-m6811 -m6812 -m68hc11 -m68hc12 @gol
|
||||
-mauto-incdec -minmax -mlong-calls -mshort -msoft-reg-count=@var{count}}
|
||||
-mauto-incdec -minmax -mlong-calls -mshort @gol
|
||||
-msoft-reg-count=@var{count}}
|
||||
|
||||
@emph{VAX Options}
|
||||
@gccoptlist{
|
||||
@ -447,7 +449,7 @@ in the following sections.
|
||||
-mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol
|
||||
-mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol
|
||||
-mcall-aix -mcall-sysv -mcall-netbsd @gol
|
||||
-maix-struct-return -msvr4-struct-return
|
||||
-maix-struct-return -msvr4-struct-return @gol
|
||||
-mabi=altivec -mabi=no-altivec @gol
|
||||
-mabi=spe -mabi=no-spe @gol
|
||||
-misel=yes -misel=no @gol
|
||||
@ -477,7 +479,7 @@ in the following sections.
|
||||
-m4650 -msingle-float -mmad @gol
|
||||
-mstats -EL -EB -G @var{num} -nocpp @gol
|
||||
-mabi=32 -mabi=n32 -mabi=64 -mabi=eabi @gol
|
||||
-mfix7000 -mno-crt0 -mflush-func=@var{func} -mno-flush-func
|
||||
-mfix7000 -mno-crt0 -mflush-func=@var{func} -mno-flush-func @gol
|
||||
-mbranch-likely -mno-branch-likely}
|
||||
|
||||
@emph{i386 and x86-64 Options}
|
||||
@ -619,8 +621,8 @@ in the following sections.
|
||||
|
||||
@emph{D30V Options}
|
||||
@gccoptlist{
|
||||
-mextmem -mextmemory -monchip -mno-asm-optimize -masm-optimize @gol
|
||||
-mbranch-cost=@var{n} -mcond-exec=@var{n}}
|
||||
-mextmem -mextmemory -monchip -mno-asm-optimize @gol
|
||||
-masm-optimize -mbranch-cost=@var{n} -mcond-exec=@var{n}}
|
||||
|
||||
@emph{S/390 and zSeries Options}
|
||||
@gccoptlist{
|
||||
@ -684,7 +686,8 @@ in the following sections.
|
||||
-fverbose-asm -fpack-struct -fstack-check @gol
|
||||
-fstack-limit-register=@var{reg} -fstack-limit-symbol=@var{sym} @gol
|
||||
-fargument-alias -fargument-noalias @gol
|
||||
-fargument-noalias-global -fleading-underscore -ftls-model=@var{model}}
|
||||
-fargument-noalias-global -fleading-underscore @gol
|
||||
-ftls-model=@var{model}}
|
||||
@end table
|
||||
|
||||
@menu
|
||||
|
@ -48,9 +48,9 @@ You can specify specific tests by setting RUNTESTFLAGS to be the name
|
||||
of the @file{.exp} file, optionally followed by (for some tests) an equals
|
||||
and a file wildcard, like:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
make check-gcc RUNTESTFLAGS="execute.exp=19980413-*"
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
Note that running the testsuite may require additional tools be
|
||||
installed, such as TCL or dejagnu.
|
||||
|
@ -2355,11 +2355,11 @@ An hypothetical example might be a pattern for an addition that can
|
||||
either wrap around or use saturating addition depending on the value
|
||||
of a special control register:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
(parallel [(set (reg:SI 2) (unspec:SI [(reg:SI 3)
|
||||
(reg:SI 4)] 0))
|
||||
(use (reg:SI 1))])
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
|
||||
@ -2588,10 +2588,10 @@ where @var{z} is an index register and @var{i} is a constant.
|
||||
|
||||
Here is an example of its use:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
(mem:SF (post_modify:SI (reg:SI 42) (plus (reg:SI 42)
|
||||
(reg:SI 48))))
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
This says to modify pseudo register 42 by adding the contents of pseudo
|
||||
register 48 to it, after the use of what ever 42 points to.
|
||||
|
@ -160,11 +160,19 @@ information concerning the history of C that is available online, see
|
||||
|
||||
There is no formal written standard for Objective-C@. The most
|
||||
authoritative manual is ``Object-Oriented Programming and the
|
||||
Objective-C Language'', available at a number of web sites;
|
||||
@uref{http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/} has a
|
||||
recent version, while @uref{http://www.toodarkpark.org/computers/objc/}
|
||||
is an older example. @uref{http://www.gnustep.org} includes useful
|
||||
information as well.
|
||||
Objective-C Language'', available at a number of web sites
|
||||
|
||||
@itemize
|
||||
@item
|
||||
@uref{http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/}
|
||||
is a recent version
|
||||
@item
|
||||
@uref{http://www.toodarkpark.org/computers/objc/}
|
||||
is an older example
|
||||
@item
|
||||
@uref{http://www.gnustep.org}
|
||||
has additional useful information
|
||||
@end itemize
|
||||
|
||||
@cindex treelang
|
||||
There is no standard for treelang, which is a sample language front end
|
||||
|
@ -157,11 +157,11 @@ such as one option that enables many options, some of which select
|
||||
multilibs. Example nonsensical definition, where @code{-malt-abi},
|
||||
@code{-EB}, and @code{-mspoo} cause different multilibs to be chosen:
|
||||
|
||||
@example
|
||||
@smallexample
|
||||
#define TARGET_OPTION_TRANSLATE_TABLE \
|
||||
@{ "-fast", "-march=fast-foo -malt-abi -I/usr/fast-foo" @}, \
|
||||
@{ "-compat", "-EB -malign=4 -mspoo" @}
|
||||
@end example
|
||||
@end smallexample
|
||||
|
||||
@findex CPP_SPEC
|
||||
@item CPP_SPEC
|
||||
|
Loading…
Reference in New Issue
Block a user