Commit 161d7b59 by Joseph Myers Committed by Joseph Myers

c-tree.texi, [...]: Replace . at end of sentences preceded by a capital letter with @..

	* doc/c-tree.texi, doc/contrib.texi, doc/cpp.texi,
	doc/cppinternals.texi, doc/extend.texi, doc/gcc.texi,
	doc/gcov.texi, doc/install-old.texi, doc/install.texi,
	doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Replace
	. at end of sentences preceded by a capital letter with @..

From-SVN: r43611
parent 740f35a0
2001-06-27 Joseph S. Myers <jsm28@cam.ac.uk>
* doc/c-tree.texi, doc/contrib.texi, doc/cpp.texi,
doc/cppinternals.texi, doc/extend.texi, doc/gcc.texi,
doc/gcov.texi, doc/install-old.texi, doc/install.texi,
doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Replace
. at end of sentences preceded by a capital letter with @..
2001-06-26 Daniel Berlin <dan@cgsoftware.com> 2001-06-26 Daniel Berlin <dan@cgsoftware.com>
* doc/invoke.texi: Add description of max-gcse-passes param. * doc/invoke.texi: Add description of max-gcse-passes param.
......
...@@ -32,7 +32,7 @@ of the representation used in the C front end. There is only one ...@@ -32,7 +32,7 @@ of the representation used in the C front end. There is only one
construct used in C that does not appear in the C++ front end and that construct used in C that does not appear in the C++ front end and that
is the GNU ``nested function'' extension. Many of the macros documented is the GNU ``nested function'' extension. Many of the macros documented
here do not apply in C because the corresponding language constructs do here do not apply in C because the corresponding language constructs do
not appear in C. not appear in C@.
If you are developing a ``back end'', be it is a code-generator or some If you are developing a ``back end'', be it is a code-generator or some
other tool, that uses this representation, you may occasionally find other tool, that uses this representation, you may occasionally find
...@@ -44,7 +44,7 @@ the GCC maintainers (via mail to @email{gcc@@gcc.gnu.org}) about ...@@ -44,7 +44,7 @@ the GCC maintainers (via mail to @email{gcc@@gcc.gnu.org}) about
documenting the functionality you require. Similarly, if you find documenting the functionality you require. Similarly, if you find
yourself writing functions that do not deal directly with your back end, yourself writing functions that do not deal directly with your back end,
but instead might be useful to other people using the GCC front end, you but instead might be useful to other people using the GCC front end, you
should submit your patches for inclusion in GCC. should submit your patches for inclusion in GCC@.
@menu @menu
* Deficiencies:: Topics net yet covered in this document. * Deficiencies:: Topics net yet covered in this document.
...@@ -499,7 +499,7 @@ arguments. ...@@ -499,7 +499,7 @@ arguments.
Note that in C (but not in C++) a function declared like @code{void f()} Note that in C (but not in C++) a function declared like @code{void f()}
is an unprototyped function taking a variable number of arguments; the is an unprototyped function taking a variable number of arguments; the
@code{TYPE_ARG_TYPES} of such a function will be NULL. @code{TYPE_ARG_TYPES} of such a function will be NULL@.
@item METHOD_TYPE @item METHOD_TYPE
Used to represent the type of a non-static member function. Like a Used to represent the type of a non-static member function. Like a
...@@ -1641,7 +1641,7 @@ And, if an exception is thrown while the expression is executing, ...@@ -1641,7 +1641,7 @@ And, if an exception is thrown while the expression is executing,
@item USING_STMT @item USING_STMT
Used to represent a @code{using} directive. The namespace is given by Used to represent a @code{using} directive. The namespace is given by
@code{USING_STMT_NAMESPACE}, which will be a NAMESPACE_DECL. This node @code{USING_STMT_NAMESPACE}, which will be a NAMESPACE_DECL@. This node
is needed inside template functions, to implement using directives is needed inside template functions, to implement using directives
during instantiation. during instantiation.
......
...@@ -104,7 +104,7 @@ Ulrich Drepper for his work on the C++ runtime libraries, glibc, ...@@ -104,7 +104,7 @@ Ulrich Drepper for his work on the C++ runtime libraries, glibc,
testing of GCC using glibc, ISO C99 support, CFG dumping support, etc. testing of GCC using glibc, ISO C99 support, CFG dumping support, etc.
@item @item
Richard Earnshaw for his ongoing work with the ARM. Richard Earnshaw for his ongoing work with the ARM@.
@item @item
David Edelsohn for his direction via the steering committee, David Edelsohn for his direction via the steering committee,
...@@ -112,7 +112,7 @@ ongoing work with the RS6000/PowerPC port, and help cleaning up Haifa ...@@ -112,7 +112,7 @@ ongoing work with the RS6000/PowerPC port, and help cleaning up Haifa
loop changes. loop changes.
@item @item
Paul Eggert for random hacking all over GCC. Paul Eggert for random hacking all over GCC@.
@item @item
Mark Elbrecht for various DJGPP improvements. Mark Elbrecht for various DJGPP improvements.
...@@ -218,7 +218,7 @@ J. Kean Johnston for OpenServer support. ...@@ -218,7 +218,7 @@ J. Kean Johnston for OpenServer support.
Klaus Kaempf for his ongoing work to make alpha-vms a viable target. Klaus Kaempf for his ongoing work to make alpha-vms a viable target.
@item @item
David Kashtan of SRI adapted GCC to VMS. David Kashtan of SRI adapted GCC to VMS@.
@item @item
Geoffrey Keating for his ongoing work to make the PPC work for Linux. Geoffrey Keating for his ongoing work to make the PPC work for Linux.
...@@ -228,7 +228,7 @@ Brendan Kehoe for his ongoing work with g++. ...@@ -228,7 +228,7 @@ Brendan Kehoe for his ongoing work with g++.
@item @item
Oliver M. Kellogg of Deutsche Aerospace contributed the port to the Oliver M. Kellogg of Deutsche Aerospace contributed the port to the
MIL-STD-1750A. MIL-STD-1750A@.
@item @item
Richard Kenner of the New York University Ultracomputer Research Richard Kenner of the New York University Ultracomputer Research
......
...@@ -196,7 +196,7 @@ C-family languages. If a Makefile is preprocessed, all the hard tabs ...@@ -196,7 +196,7 @@ C-family languages. If a Makefile is preprocessed, all the hard tabs
will be removed, and the Makefile will not work. will be removed, and the Makefile will not work.
Having said that, you can often get away with using cpp on things which Having said that, you can often get away with using cpp on things which
are not C. Other Algol-ish programming languages are often safe are not C@. Other Algol-ish programming languages are often safe
(Pascal, Ada, etc.) So is assembly, with caution. @option{-traditional} (Pascal, Ada, etc.) So is assembly, with caution. @option{-traditional}
mode preserves more white space, and is otherwise more permissive. Many mode preserves more white space, and is otherwise more permissive. Many
of the problems can be avoided by writing C or C++ style comments of the problems can be avoided by writing C or C++ style comments
...@@ -273,7 +273,7 @@ single characters. ...@@ -273,7 +273,7 @@ single characters.
These are nine three-character sequences, all starting with @samp{??}, These are nine three-character sequences, all starting with @samp{??},
that are defined by ISO C to stand for single characters. They permit that are defined by ISO C to stand for single characters. They permit
obsolete systems that lack some of C's punctuation to use C. For obsolete systems that lack some of C's punctuation to use C@. For
example, @samp{??/} stands for @samp{\}, so @t{'??/n'} is a character example, @samp{??/} stands for @samp{\}, so @t{'??/n'} is a character
constant for a newline. By default, GCC ignores trigraphs, but if you constant for a newline. By default, GCC ignores trigraphs, but if you
request a strictly conforming mode with the @option{-std} option, then request a strictly conforming mode with the @option{-std} option, then
...@@ -560,7 +560,7 @@ characters other than NUL (all bits zero). (Note that @samp{$} is ...@@ -560,7 +560,7 @@ characters other than NUL (all bits zero). (Note that @samp{$} is
normally considered a letter.) All characters with the high bit set normally considered a letter.) All characters with the high bit set
(numeric range 0x7F--0xFF) are also ``other'' in the present (numeric range 0x7F--0xFF) are also ``other'' in the present
implementation. This will change when proper support for international implementation. This will change when proper support for international
character sets is added to GCC. character sets is added to GCC@.
NUL is a special case because of the high probability that its NUL is a special case because of the high probability that its
appearance is accidental, and because it may be invisible to the user appearance is accidental, and because it may be invisible to the user
...@@ -575,7 +575,7 @@ have the same meaning. ...@@ -575,7 +575,7 @@ have the same meaning.
@end example @end example
@noindent @noindent
(where @samp{^@@} is ASCII NUL). Within string or character constants, (where @samp{^@@} is ASCII NUL)@. Within string or character constants,
NULs are preserved. In the latter two cases the preprocessor emits a NULs are preserved. In the latter two cases the preprocessor emits a
warning message. warning message.
...@@ -1801,7 +1801,7 @@ constant of the form @code{@var{yyyy}@var{mm}L} where @var{yyyy} and ...@@ -1801,7 +1801,7 @@ constant of the form @code{@var{yyyy}@var{mm}L} where @var{yyyy} and
@var{mm} are the year and month of the Standard version. This signifies @var{mm} are the year and month of the Standard version. This signifies
which version of the C Standard the compiler conforms to. Like which version of the C Standard the compiler conforms to. Like
@code{__STDC__}, this is not necessarily accurate for the entire @code{__STDC__}, this is not necessarily accurate for the entire
implementation, unless GNU CPP is being used with GCC. implementation, unless GNU CPP is being used with GCC@.
The value @code{199409L} signifies the 1989 C standard as amended in The value @code{199409L} signifies the 1989 C standard as amended in
1994, which is the current default; the value @code{199901L} signifies 1994, which is the current default; the value @code{199901L} signifies
...@@ -1842,7 +1842,7 @@ underscores. ...@@ -1842,7 +1842,7 @@ underscores.
@itemx __GNUC_MINOR__ @itemx __GNUC_MINOR__
@itemx __GNUC_PATCHLEVEL__ @itemx __GNUC_PATCHLEVEL__
These macros are defined by all GNU compilers that use the C These macros are defined by all GNU compilers that use the C
preprocessor: C, C++, and Objective-C. Their values are the major preprocessor: C, C++, and Objective-C@. Their values are the major
version, minor version, and patch level of the compiler, as integer version, minor version, and patch level of the compiler, as integer
constants. For example, GCC 3.2.1 will define @code{__GNUC__} to 3, constants. For example, GCC 3.2.1 will define @code{__GNUC__} to 3,
@code{__GNUC_MINOR__} to 2, and @code{__GNUC_PATCHLEVEL__} to 1. They @code{__GNUC_MINOR__} to 2, and @code{__GNUC_PATCHLEVEL__} to 1. They
...@@ -2678,7 +2678,7 @@ group in one file and end it in another. ...@@ -2678,7 +2678,7 @@ group in one file and end it in another.
Even if a conditional fails, the @var{controlled text} inside it is Even if a conditional fails, the @var{controlled text} inside it is
still run through initial transformations and tokenization. Therefore, still run through initial transformations and tokenization. Therefore,
it must all be lexically valid C. Normally the only way this matters is it must all be lexically valid C@. Normally the only way this matters is
that all comments and string literals inside a failing conditional group that all comments and string literals inside a failing conditional group
must still be properly ended. must still be properly ended.
...@@ -2758,7 +2758,7 @@ code. ...@@ -2758,7 +2758,7 @@ code.
Arithmetic operators for addition, subtraction, multiplication, Arithmetic operators for addition, subtraction, multiplication,
division, bitwise operations, shifts, comparisons, and logical division, bitwise operations, shifts, comparisons, and logical
operations (@code{&&} and @code{||}). The latter two obey the usual operations (@code{&&} and @code{||}). The latter two obey the usual
short-circuiting rules of standard C. short-circuiting rules of standard C@.
@item @item
Macros. All macros in the expression are expanded before actual Macros. All macros in the expression are expanded before actual
...@@ -3152,7 +3152,7 @@ some systems, that string constant is copied into a special segment of ...@@ -3152,7 +3152,7 @@ some systems, that string constant is copied into a special segment of
the object file. On other systems, the directive is ignored. the object file. On other systems, the directive is ignored.
This directive is not part of the C standard, but it is not an official This directive is not part of the C standard, but it is not an official
GNU extension either. We believe it came from System V. GNU extension either. We believe it came from System V@.
@findex #sccs @findex #sccs
The @samp{#sccs} directive is recognized on some systems, because it The @samp{#sccs} directive is recognized on some systems, because it
...@@ -3386,7 +3386,7 @@ reliance on behaviour described here, as it is possible that it will ...@@ -3386,7 +3386,7 @@ reliance on behaviour described here, as it is possible that it will
change subtly in future implementations. change subtly in future implementations.
Also documented here are obsolete features and changes from previous Also documented here are obsolete features and changes from previous
versions of GNU CPP. versions of GNU CPP@.
@menu @menu
* Implementation-defined behavior:: * Implementation-defined behavior::
...@@ -3526,7 +3526,7 @@ may not be a limitation. ...@@ -3526,7 +3526,7 @@ may not be a limitation.
GNU CPP has a number of features which are present mainly for GNU CPP has a number of features which are present mainly for
compatibility with older programs. We discourage their use in new code. compatibility with older programs. We discourage their use in new code.
In some cases, we plan to remove the feature in a future version of GCC. In some cases, we plan to remove the feature in a future version of GCC@.
@menu @menu
* Assertions:: * Assertions::
...@@ -3631,7 +3631,7 @@ called @samp{#import} which includes a file, but does so at most once. ...@@ -3631,7 +3631,7 @@ called @samp{#import} which includes a file, but does so at most once.
If you use @samp{#import} instead of @samp{#include}, then you don't If you use @samp{#import} instead of @samp{#include}, then you don't
need the conditionals inside the header file to prevent multiple need the conditionals inside the header file to prevent multiple
inclusion of the contents. GCC permits the use of @samp{#import} in C inclusion of the contents. GCC permits the use of @samp{#import} in C
and C++ as well as Objective-C. However, it is not in standard C or C++ and C++ as well as Objective-C@. However, it is not in standard C or C++
and should therefore not be used by portable programs. and should therefore not be used by portable programs.
@samp{#import} is not a well designed feature. It requires the users of @samp{#import} is not a well designed feature. It requires the users of
...@@ -3683,7 +3683,7 @@ This is the same as @code{#pragma GCC poison}. The version without the ...@@ -3683,7 +3683,7 @@ This is the same as @code{#pragma GCC poison}. The version without the
GCC currently allows a string constant to extend across multiple logical GCC currently allows a string constant to extend across multiple logical
lines of the source file. This extension is deprecated and will be lines of the source file. This extension is deprecated and will be
removed in a future version of GCC. Such string constants are already removed in a future version of GCC@. Such string constants are already
rejected in all directives apart from @samp{#define}. rejected in all directives apart from @samp{#define}.
Instead, make use of ISO C concatenation of adjacent string literals, or Instead, make use of ISO C concatenation of adjacent string literals, or
...@@ -3696,7 +3696,7 @@ use @samp{\n} followed by a backslash-newline. ...@@ -3696,7 +3696,7 @@ use @samp{\n} followed by a backslash-newline.
@cindex differences from previous versions @cindex differences from previous versions
This section details behavior which has changed from previous versions This section details behavior which has changed from previous versions
of GNU CPP. We do not plan to change it again in the near future, but of GNU CPP@. We do not plan to change it again in the near future, but
we do not promise not to, either. we do not promise not to, either.
The ``previous versions'' discussed here are 2.95 and before. The The ``previous versions'' discussed here are 2.95 and before. The
...@@ -4053,7 +4053,7 @@ The 1990 C standard, as amended in 1994. ...@@ -4053,7 +4053,7 @@ The 1990 C standard, as amended in 1994.
@itemx iso9899:199x @itemx iso9899:199x
@itemx c9x @itemx c9x
The revised ISO C standard, published in December 1999. Before The revised ISO C standard, published in December 1999. Before
publication, this was known as C9X. publication, this was known as C9X@.
@item gnu89 @item gnu89
The 1990 C standard plus GNU extensions. This is the default. The 1990 C standard plus GNU extensions. This is the default.
...@@ -4246,7 +4246,7 @@ Process trigraph sequences. @xref{Initial processing}. ...@@ -4246,7 +4246,7 @@ Process trigraph sequences. @xref{Initial processing}.
@item -remap @item -remap
Enable special code to work around file systems which only permit very Enable special code to work around file systems which only permit very
short file names, such as MS-DOS. short file names, such as MS-DOS@.
@item -$ @item -$
Forbid the use of @samp{$} in identifiers. The C standard allows Forbid the use of @samp{$} in identifiers. The C standard allows
......
...@@ -193,7 +193,7 @@ we don't allow the terminators of header names to be escaped; the first ...@@ -193,7 +193,7 @@ we don't allow the terminators of header names to be escaped; the first
Interpretation of some character sequences depends upon whether we are Interpretation of some character sequences depends upon whether we are
lexing C, C++ or Objective-C, and on the revision of the standard in lexing C, C++ or Objective-C, and on the revision of the standard in
force. For example, @samp{::} is a single token in C++, but two force. For example, @samp{::} is a single token in C++, but two
separate @samp{:} tokens, and almost certainly a syntax error, in C. separate @samp{:} tokens, and almost certainly a syntax error, in C@.
Such cases are handled in the main function @samp{_cpp_lex_token}, based Such cases are handled in the main function @samp{_cpp_lex_token}, based
upon the flags set in the @samp{cpp_options} structure. upon the flags set in the @samp{cpp_options} structure.
......
...@@ -8,13 +8,13 @@ ...@@ -8,13 +8,13 @@
@cindex C language extensions @cindex C language extensions
@opindex pedantic @opindex pedantic
GNU C provides several language features not found in ISO standard C. GNU C provides several language features not found in ISO standard C@.
(The @option{-pedantic} option directs GCC to print a warning message if (The @option{-pedantic} option directs GCC to print a warning message if
any of these features is used.) To test for the availability of these any of these features is used.) To test for the availability of these
features in conditional compilation, check for a predefined macro features in conditional compilation, check for a predefined macro
@code{__GNUC__}, which is always defined under GCC. @code{__GNUC__}, which is always defined under GCC@.
These extensions are available in C and Objective-C. Most of them are These extensions are available in C and Objective-C@. Most of them are
also available in C++. @xref{C++ Extensions,,Extensions to the also available in C++. @xref{C++ Extensions,,Extensions to the
C++ Language}, for extensions that apply @emph{only} to C++. C++ Language}, for extensions that apply @emph{only} to C++.
...@@ -139,7 +139,7 @@ extensions, accepted by GCC in C89 mode and in C++. ...@@ -139,7 +139,7 @@ extensions, accepted by GCC in C89 mode and in C++.
@c changed it from "within" to "in". --mew 4feb93 @c changed it from "within" to "in". --mew 4feb93
A compound statement enclosed in parentheses may appear as an expression A compound statement enclosed in parentheses may appear as an expression
in GNU C. This allows you to use loops, switches, and local variables in GNU C@. This allows you to use loops, switches, and local variables
within an expression. within an expression.
Recall that a compound statement is a sequence of statements surrounded Recall that a compound statement is a sequence of statements surrounded
...@@ -803,7 +803,7 @@ are open-coded on all types of machines. Multiplication is open-coded ...@@ -803,7 +803,7 @@ are open-coded on all types of machines. Multiplication is open-coded
if the machine supports fullword-to-doubleword a widening multiply if the machine supports fullword-to-doubleword a widening multiply
instruction. Division and shifts are open-coded only on machines that instruction. Division and shifts are open-coded only on machines that
provide special support. The operations that are not open-coded use provide special support. The operations that are not open-coded use
special library routines that come with GCC. special library routines that come with GCC@.
There may be pitfalls when you use @code{long long} types for function There may be pitfalls when you use @code{long long} types for function
arguments, unless you declare function prototypes. If a function arguments, unless you declare function prototypes. If a function
...@@ -850,14 +850,14 @@ extract the imaginary part. This is a GNU extension; for values of ...@@ -850,14 +850,14 @@ extract the imaginary part. This is a GNU extension; for values of
floating type, you should use the ISO C99 functions @code{crealf}, floating type, you should use the ISO C99 functions @code{crealf},
@code{creal}, @code{creall}, @code{cimagf}, @code{cimag} and @code{creal}, @code{creall}, @code{cimagf}, @code{cimag} and
@code{cimagl}, declared in @code{<complex.h>} and also provided as @code{cimagl}, declared in @code{<complex.h>} and also provided as
built-in functions by GCC. built-in functions by GCC@.
@cindex complex conjugation @cindex complex conjugation
The operator @samp{~} performs complex conjugation when used on a value The operator @samp{~} performs complex conjugation when used on a value
with a complex type. This is a GNU extension; for values of with a complex type. This is a GNU extension; for values of
floating type, you should use the ISO C99 functions @code{conjf}, floating type, you should use the ISO C99 functions @code{conjf},
@code{conj} and @code{conjl}, declared in @code{<complex.h>} and also @code{conj} and @code{conjl}, declared in @code{<complex.h>} and also
provided as built-in functions by GCC. provided as built-in functions by GCC@.
GCC can allocate complex automatic variables in a noncontiguous GCC can allocate complex automatic variables in a noncontiguous
fashion; it's even possible for the real part to be in a register while fashion; it's even possible for the real part to be in a register while
...@@ -900,7 +900,7 @@ extension for floating-point constants of type @code{float}. ...@@ -900,7 +900,7 @@ extension for floating-point constants of type @code{float}.
@cindex length-zero arrays @cindex length-zero arrays
@cindex flexible array members @cindex flexible array members
Zero-length arrays are allowed in GNU C. They are very useful as the Zero-length arrays are allowed in GNU C@. They are very useful as the
last element of a structure which is really a header for a variable-length last element of a structure which is really a header for a variable-length
object: object:
...@@ -1170,7 +1170,7 @@ removed. ...@@ -1170,7 +1170,7 @@ removed.
Subscripting is allowed on arrays that are not lvalues, even though the Subscripting is allowed on arrays that are not lvalues, even though the
unary @samp{&} operator is not. (In ISO C99, both are allowed (though unary @samp{&} operator is not. (In ISO C99, both are allowed (though
the array may not be used after the next sequence point), but this ISO the array may not be used after the next sequence point), but this ISO
C99 feature is not yet fully supported in GCC.) For example, C99 feature is not yet fully supported in GCC@.) For example,
this is valid in GNU C though not valid in C89: this is valid in GNU C though not valid in C89:
@example @example
...@@ -1210,7 +1210,7 @@ are used. ...@@ -1210,7 +1210,7 @@ are used.
@cindex non-constant initializers @cindex non-constant initializers
As in standard C++ and ISO C99, the elements of an aggregate initializer for an As in standard C++ and ISO C99, the elements of an aggregate initializer for an
automatic variable are not required to be constant expressions in GNU C. automatic variable are not required to be constant expressions in GNU C@.
Here is an example of an initializer with run-time varying elements: Here is an example of an initializer with run-time varying elements:
@example @example
...@@ -1797,7 +1797,7 @@ been called. Functions with these attributes are useful for ...@@ -1797,7 +1797,7 @@ been called. Functions with these attributes are useful for
initializing data that will be used implicitly during the execution of initializing data that will be used implicitly during the execution of
the program. the program.
These attributes are not currently implemented for Objective-C. These attributes are not currently implemented for Objective-C@.
@item unused @item unused
This attribute, attached to a function, means that the function is meant This attribute, attached to a function, means that the function is meant
...@@ -1891,7 +1891,7 @@ current location can be called. ...@@ -1891,7 +1891,7 @@ current location can be called.
@item long_call/short_call @item long_call/short_call
@cindex indirect calls on ARM @cindex indirect calls on ARM
This attribute allows to specify how to call a particular function on This attribute allows to specify how to call a particular function on
ARM. Both attributes override the @option{-mlong-calls} (@pxref{ARM Options}) ARM@. Both attributes override the @option{-mlong-calls} (@pxref{ARM Options})
command line switch and @code{#pragma long_calls} settings. The command line switch and @code{#pragma long_calls} settings. The
@code{long_call} attribute causes the compiler to always call the @code{long_call} attribute causes the compiler to always call the
function by first loading its address into a register and then using the function by first loading its address into a register and then using the
...@@ -1954,7 +1954,7 @@ adding an optional parameter to the interrupt attribute like this: ...@@ -1954,7 +1954,7 @@ adding an optional parameter to the interrupt attribute like this:
void f () __attribute__ ((interrupt ("IRQ"))); void f () __attribute__ ((interrupt ("IRQ")));
@end smallexample @end smallexample
Permissible values for this parameter are: IRQ, FIQ, SWI, ABORT and UNDEF. Permissible values for this parameter are: IRQ, FIQ, SWI, ABORT and UNDEF@.
@item interrupt_handler @item interrupt_handler
@cindex interrupt handler functions on the H8/300 and SH processors @cindex interrupt handler functions on the H8/300 and SH processors
...@@ -2072,7 +2072,7 @@ Preprocessing Directives, cpp, The C Preprocessor}. ...@@ -2072,7 +2072,7 @@ Preprocessing Directives, cpp, The C Preprocessor}.
This section describes the syntax with which @code{__attribute__} may be This section describes the syntax with which @code{__attribute__} may be
used, and the constructs to which attribute specifiers bind, for the C used, and the constructs to which attribute specifiers bind, for the C
language. Some details may vary for C++ and Objective-C. Because of language. Some details may vary for C++ and Objective-C@. Because of
infelicities in the grammar for attributes, some forms described here infelicities in the grammar for attributes, some forms described here
may not be successfully parsed in all cases. may not be successfully parsed in all cases.
...@@ -2561,7 +2561,7 @@ section, consider using the facilities of the linker instead. ...@@ -2561,7 +2561,7 @@ section, consider using the facilities of the linker instead.
@cindex @code{shared} variable attribute @cindex @code{shared} variable attribute
On Windows NT, in addition to putting variable definitions in a named On Windows NT, in addition to putting variable definitions in a named
section, the section can also be shared among all running copies of an section, the section can also be shared among all running copies of an
executable or DLL. For example, this small program defines shared data executable or DLL@. For example, this small program defines shared data
by putting it in a named section @code{shared} and marking the section by putting it in a named section @code{shared} and marking the section
shareable: shareable:
...@@ -2582,7 +2582,7 @@ You may only use the @code{shared} attribute along with @code{section} ...@@ -2582,7 +2582,7 @@ You may only use the @code{shared} attribute along with @code{section}
attribute with a fully initialized global definition because of the way attribute with a fully initialized global definition because of the way
linkers work. See @code{section} attribute for more information. linkers work. See @code{section} attribute for more information.
The @code{shared} attribute is only available on Windows NT. The @code{shared} attribute is only available on Windows NT@.
@item transparent_union @item transparent_union
This attribute, attached to a function parameter which is a union, means This attribute, attached to a function parameter which is a union, means
...@@ -3180,7 +3180,7 @@ asm volatile ("eieio" : : ); ...@@ -3180,7 +3180,7 @@ asm volatile ("eieio" : : );
Assume @code{addr} contains the address of a memory mapped device Assume @code{addr} contains the address of a memory mapped device
register. The PowerPC @code{eieio} instruction (Enforce In-order register. The PowerPC @code{eieio} instruction (Enforce In-order
Execution of I/O) tells the cpu to make sure that the store to that Execution of I/O) tells the cpu to make sure that the store to that
device register happens before it issues any other I/O. device register happens before it issues any other I/O@.
Note that even a volatile @code{asm} instruction can be moved in ways Note that even a volatile @code{asm} instruction can be moved in ways
that appear insignificant to the compiler, such as across jump that appear insignificant to the compiler, such as across jump
...@@ -4505,7 +4505,7 @@ the inner loop, to save a bit of time. ...@@ -4505,7 +4505,7 @@ the inner loop, to save a bit of time.
Note that you will still be paying the penalty for the call through a Note that you will still be paying the penalty for the call through a
function pointer; on most modern architectures, such a call defeats the function pointer; on most modern architectures, such a call defeats the
branch prediction features of the CPU. This is also true of normal branch prediction features of the CPU@. This is also true of normal
virtual function calls. virtual function calls.
The syntax for this extension is The syntax for this extension is
......
...@@ -99,7 +99,7 @@ in fine-tuning the performance of your programs. @command{gprof} gives ...@@ -99,7 +99,7 @@ in fine-tuning the performance of your programs. @command{gprof} gives
timing information you can use along with the information you get from timing information you can use along with the information you get from
@command{gcov}. @command{gcov}.
@command{gcov} works only on code compiled with GCC. It is not @command{gcov} works only on code compiled with GCC@. It is not
compatible with any other profiling or test coverage mechanism. compatible with any other profiling or test coverage mechanism.
@c man end @c man end
......
...@@ -82,7 +82,7 @@ ignored. So you might as well specify the version if you know it. ...@@ -82,7 +82,7 @@ ignored. So you might as well specify the version if you know it.
See @ref{Configurations}, for a list of supported configuration names and See @ref{Configurations}, for a list of supported configuration names and
notes on many of the configurations. You should check the notes in that notes on many of the configurations. You should check the notes in that
section before proceeding any further with the installation of GNU CC. section before proceeding any further with the installation of GNU CC@.
@end enumerate @end enumerate
...@@ -185,7 +185,7 @@ operating system from the CPU and company. ...@@ -185,7 +185,7 @@ operating system from the CPU and company.
You can add a version number to the system type; this may or may not You can add a version number to the system type; this may or may not
make a difference. For example, you can write @samp{bsd4.3} or make a difference. For example, you can write @samp{bsd4.3} or
@samp{bsd4.4} to distinguish versions of BSD. In practice, the version @samp{bsd4.4} to distinguish versions of BSD@. In practice, the version
number is most needed for @samp{sysv3} and @samp{sysv4}, which are often number is most needed for @samp{sysv3} and @samp{sysv4}, which are often
treated differently. treated differently.
...@@ -242,7 +242,7 @@ things you must know: ...@@ -242,7 +242,7 @@ things you must know:
@table @samp @table @samp
@item vax-dec-vms @item vax-dec-vms
See @ref{VMS Install}, for details on how to install GNU CC on VMS. See @ref{VMS Install}, for details on how to install GNU CC on VMS@.
@end table @end table
@node Cross-Compiler @node Cross-Compiler
...@@ -311,7 +311,7 @@ startup files (typically @file{crt@dots{}.o}) for the target machine. ...@@ -311,7 +311,7 @@ startup files (typically @file{crt@dots{}.o}) for the target machine.
@end itemize @end itemize
It is most convenient to do all of these steps on the same host machine, It is most convenient to do all of these steps on the same host machine,
since then you can do it all with a single invocation of GNU CC. This since then you can do it all with a single invocation of GNU CC@. This
requires a suitable cross-assembler and cross-linker. For some targets, requires a suitable cross-assembler and cross-linker. For some targets,
the GNU assembler and linker are available. the GNU assembler and linker are available.
...@@ -358,7 +358,7 @@ and copy or link them to the proper place to for the cross-compiler to ...@@ -358,7 +358,7 @@ and copy or link them to the proper place to for the cross-compiler to
find them when run later. find them when run later.
The easiest way to provide these files is to build the Binutils package The easiest way to provide these files is to build the Binutils package
and GAS. Configure them with the same @option{--host} and @option{--target} and GAS@. Configure them with the same @option{--host} and @option{--target}
options that you use for configuring GNU CC, then build and install options that you use for configuring GNU CC, then build and install
them. They install their executables automatically into the proper them. They install their executables automatically into the proper
directory. Alas, they do not support all the targets that GNU CC directory. Alas, they do not support all the targets that GNU CC
...@@ -439,7 +439,7 @@ them. ...@@ -439,7 +439,7 @@ them.
Provide the header files before you build the cross-compiler, because Provide the header files before you build the cross-compiler, because
the build stage actually runs the cross-compiler to produce parts of the build stage actually runs the cross-compiler to produce parts of
@file{libgcc.a}. (These are the parts that @emph{can} be compiled with @file{libgcc.a}. (These are the parts that @emph{can} be compiled with
GNU CC.) Some of them need suitable header files. GNU CC@.) Some of them need suitable header files.
Here's an example showing how to copy the header files from a target Here's an example showing how to copy the header files from a target
machine. On the target machine, do this: machine. On the target machine, do this:
...@@ -748,7 +748,7 @@ compiles it, and links the program a second time including that file. ...@@ -748,7 +748,7 @@ compiles it, and links the program a second time including that file.
The actual calls to the constructors are carried out by a subroutine The actual calls to the constructors are carried out by a subroutine
called @code{__main}, which is called (automatically) at the beginning called @code{__main}, which is called (automatically) at the beginning
of the body of @code{main} (provided @code{main} was compiled with GNU of the body of @code{main} (provided @code{main} was compiled with GNU
CC). Calling @code{__main} is necessary, even when compiling C code, to CC)@. Calling @code{__main} is necessary, even when compiling C code, to
allow linking C and C++ object code together. (If you use allow linking C and C++ object code together. (If you use
@option{-nostdlib}, you get an unresolved reference to @code{__main}, @option{-nostdlib}, you get an unresolved reference to @code{__main},
since it's defined in the standard GCC library. Include @option{-lgcc} at since it's defined in the standard GCC library. Include @option{-lgcc} at
......
...@@ -79,7 +79,7 @@ If a @code{define_insn} is used, the template given is inserted into the ...@@ -79,7 +79,7 @@ If a @code{define_insn} is used, the template given is inserted into the
insn list. If a @code{define_expand} is used, one of three things insn list. If a @code{define_expand} is used, one of three things
happens, based on the condition logic. The condition logic may manually happens, based on the condition logic. The condition logic may manually
create new insns for the insn list, say via @code{emit_insn()}, and create new insns for the insn list, say via @code{emit_insn()}, and
invoke DONE. For certain named patterns, it may invoke FAIL to tell the invoke DONE@. For certain named patterns, it may invoke FAIL to tell the
compiler to use an alternate way of performing that task. If it invokes compiler to use an alternate way of performing that task. If it invokes
neither @code{DONE} nor @code{FAIL}, the template given in the pattern neither @code{DONE} nor @code{FAIL}, the template given in the pattern
is inserted, as if the @code{define_expand} were a @code{define_insn}. is inserted, as if the @code{define_expand} were a @code{define_insn}.
...@@ -1202,7 +1202,7 @@ An input operand can be tied to an earlyclobber operand if its only ...@@ -1202,7 +1202,7 @@ An input operand can be tied to an earlyclobber operand if its only
use as an input occurs before the early result is written. Adding use as an input occurs before the early result is written. Adding
alternatives of this form often allows GCC to produce better code alternatives of this form often allows GCC to produce better code
when only some of the inputs can be affected by the earlyclobber. when only some of the inputs can be affected by the earlyclobber.
See, for example, the @samp{mulsi3} insn of the ARM. See, for example, the @samp{mulsi3} insn of the ARM@.
@samp{&} does not obviate the need to write @samp{=}. @samp{&} does not obviate the need to write @samp{=}.
...@@ -2813,7 +2813,7 @@ not work on your machine. ...@@ -2813,7 +2813,7 @@ not work on your machine.
@cindex @code{nonlocal_goto_receiver} instruction pattern @cindex @code{nonlocal_goto_receiver} instruction pattern
@item @samp{nonlocal_goto_receiver} @item @samp{nonlocal_goto_receiver}
This pattern, if defined, contains code needed at the target of a This pattern, if defined, contains code needed at the target of a
nonlocal goto after the code already generated by GCC. You will not nonlocal goto after the code already generated by GCC@. You will not
normally need to define this pattern. A typical reason why you might normally need to define this pattern. A typical reason why you might
need this pattern is if some value, such as a pointer to a global table, need this pattern is if some value, such as a pointer to a global table,
must be restored when the frame pointer is restored. Note that a nonlocal must be restored when the frame pointer is restored. Note that a nonlocal
...@@ -3390,7 +3390,7 @@ will be written using @code{zero_extract} rather than the equivalent ...@@ -3390,7 +3390,7 @@ will be written using @code{zero_extract} rather than the equivalent
On some target machines, some standard pattern names for RTL generation On some target machines, some standard pattern names for RTL generation
cannot be handled with single insn, but a sequence of RTL insns can cannot be handled with single insn, but a sequence of RTL insns can
represent them. For these target machines, you can write a represent them. For these target machines, you can write a
@code{define_expand} to specify how to generate the sequence of RTL. @code{define_expand} to specify how to generate the sequence of RTL@.
@findex define_expand @findex define_expand
A @code{define_expand} is an RTL expression that looks almost like a A @code{define_expand} is an RTL expression that looks almost like a
...@@ -4631,7 +4631,7 @@ that contains the initially computed length of the insn and should be ...@@ -4631,7 +4631,7 @@ that contains the initially computed length of the insn and should be
updated with the correct length of the insn. updated with the correct length of the insn.
This macro will normally not be required. A case in which it is This macro will normally not be required. A case in which it is
required is the ROMP. On this machine, the size of an @code{addr_vec} required is the ROMP@. On this machine, the size of an @code{addr_vec}
insn must be increased by two to compensate for the fact that alignment insn must be increased by two to compensate for the fact that alignment
may be required. may be required.
@end table @end table
......
...@@ -324,7 +324,7 @@ in operand number @var{idx} in @var{exp}. This value is an @code{int}. ...@@ -324,7 +324,7 @@ in operand number @var{idx} in @var{exp}. This value is an @code{int}.
@findex XVECEXP @findex XVECEXP
@item XVECEXP (@var{exp}, @var{idx}, @var{eltnum}) @item XVECEXP (@var{exp}, @var{idx}, @var{eltnum})
Access element number @var{eltnum} in the vector which is Access element number @var{eltnum} in the vector which is
in operand number @var{idx} in @var{exp}. This value is an RTX. in operand number @var{idx} in @var{exp}. This value is an RTX@.
It is up to you to make sure that @var{eltnum} is not negative It is up to you to make sure that @var{eltnum} is not negative
and is less than @code{XVECLEN (@var{exp}, @var{idx})}. and is less than @code{XVECLEN (@var{exp}, @var{idx})}.
...@@ -771,7 +771,7 @@ the condition code. These modes are not used on machines that use ...@@ -771,7 +771,7 @@ the condition code. These modes are not used on machines that use
``Block'' mode represents values that are aggregates to which none of ``Block'' mode represents values that are aggregates to which none of
the other modes apply. In RTL, only memory references can have this mode, the other modes apply. In RTL, only memory references can have this mode,
and only if they appear in string-move or vector instructions. On machines and only if they appear in string-move or vector instructions. On machines
which have no such instructions, @code{BLKmode} will not appear in RTL. which have no such instructions, @code{BLKmode} will not appear in RTL@.
@findex VOIDmode @findex VOIDmode
@item VOIDmode @item VOIDmode
...@@ -1339,7 +1339,7 @@ of the variable @code{pc_rtx}. Any attempt to create an expression of ...@@ -1339,7 +1339,7 @@ of the variable @code{pc_rtx}. Any attempt to create an expression of
code @code{pc} will return @code{pc_rtx}. code @code{pc} will return @code{pc_rtx}.
All instructions that do not jump alter the program counter implicitly All instructions that do not jump alter the program counter implicitly
by incrementing it, but there is no need to mention this in the RTL. by incrementing it, but there is no need to mention this in the RTL@.
@findex mem @findex mem
@item (mem:@var{m} @var{addr} @var{alias}) @item (mem:@var{m} @var{addr} @var{alias})
...@@ -2101,7 +2101,7 @@ For instructions that require a temporary register, you should use ...@@ -2101,7 +2101,7 @@ For instructions that require a temporary register, you should use
combiner phase to add the @code{clobber} when required. You do this by combiner phase to add the @code{clobber} when required. You do this by
coding (@code{clobber} (@code{match_scratch} @dots{})). If you do coding (@code{clobber} (@code{match_scratch} @dots{})). If you do
clobber a pseudo register, use one which appears nowhere else---generate clobber a pseudo register, use one which appears nowhere else---generate
a new one each time. Otherwise, you may confuse CSE. a new one each time. Otherwise, you may confuse CSE@.
There is one other known use for clobbering a pseudo register in a There is one other known use for clobbering a pseudo register in a
@code{parallel}: when one of the input operands of the insn is also @code{parallel}: when one of the input operands of the insn is also
...@@ -2998,7 +2998,7 @@ probability that the branch will be taken. ...@@ -2998,7 +2998,7 @@ probability that the branch will be taken.
@item REG_BR_PRED @item REG_BR_PRED
These notes are found in JUMP insns after delayed branch scheduling These notes are found in JUMP insns after delayed branch scheduling
has taken place. They indicate both the direction and the likelihood has taken place. They indicate both the direction and the likelihood
of the JUMP. The format is a bitmask of ATTR_FLAG_* values. of the JUMP@. The format is a bitmask of ATTR_FLAG_* values.
@findex REG_FRAME_RELATED_EXPR @findex REG_FRAME_RELATED_EXPR
@item REG_FRAME_RELATED_EXPR @item REG_FRAME_RELATED_EXPR
...@@ -3189,7 +3189,7 @@ problem since reading RTL occurs only as part of building the ...@@ -3189,7 +3189,7 @@ problem since reading RTL occurs only as part of building the
compiler. compiler.
People frequently have the idea of using RTL stored as text in a file as People frequently have the idea of using RTL stored as text in a file as
an interface between a language front end and the bulk of GCC. This an interface between a language front end and the bulk of GCC@. This
idea is not feasible. idea is not feasible.
GCC was designed to use RTL internally only. Correct RTL for a given GCC was designed to use RTL internally only. Correct RTL for a given
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment