Revert "sphinx: add missing trailing newline"
This reverts commit 3ed1b4ce7c
.
This commit is contained in:
parent
45ab87d4f3
commit
a0ccbac843
1271 changed files with 1271 additions and 1271 deletions
|
@ -36,4 +36,4 @@ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
SUCH DAMAGE.
|
|
@ -1270,4 +1270,4 @@ to testing:
|
|||
|
||||
And finally we'd like to thank everyone who uses the compiler, provides
|
||||
feedback and generally reminds us why we're doing this work in the first
|
||||
place.
|
||||
place.
|
|
@ -18,4 +18,4 @@ advice at these URLs: https://gcc.gnu.org/contribute.html, https://gcc.gnu.org/c
|
|||
|
||||
for information on how to make useful contributions and avoid
|
||||
duplication of effort. Suggested projects are listed at
|
||||
https://gcc.gnu.org/projects/.
|
||||
https://gcc.gnu.org/projects/.
|
|
@ -214,4 +214,4 @@
|
|||
|
||||
.. option:: -Wendif-labels
|
||||
|
||||
Default setting; overrides :option:`-Wno-endif-labels`.
|
||||
Default setting; overrides :option:`-Wno-endif-labels`.
|
|
@ -94,4 +94,4 @@
|
|||
|
||||
The value should be a known timestamp such as the last modification
|
||||
time of the source or package and it should be set by the build
|
||||
process.
|
||||
process.
|
|
@ -553,4 +553,4 @@
|
|||
token in the output is preceded by the dump of the map its location
|
||||
belongs to.
|
||||
|
||||
When used from GCC without :option:`-E`, this option has no effect.
|
||||
When used from GCC without :option:`-E`, this option has no effect.
|
|
@ -1,4 +1,4 @@
|
|||
..
|
||||
Copyright 1988-2022 Free Software Foundation, Inc.
|
||||
This is part of the GCC manual.
|
||||
For copying conditions, see the copyright.rst file.
|
||||
For copying conditions, see the copyright.rst file.
|
|
@ -44,4 +44,4 @@ major new features or packages contribute the most.
|
|||
|
||||
By establishing the idea that supporting further development is 'the
|
||||
proper thing to do' when distributing free software for a fee, we can
|
||||
assure a steady flow of resources into making more free software.
|
||||
assure a steady flow of resources into making more free software.
|
|
@ -16,4 +16,4 @@ kernel Linux, are now widely used; though these systems are often
|
|||
referred to as 'Linux', they are more accurately called GNU/Linux
|
||||
systems.
|
||||
|
||||
For more information, see: https://www.gnu.org/ and https://www.gnu.org/gnu/linux-and-gnu.html.
|
||||
For more information, see: https://www.gnu.org/ and https://www.gnu.org/gnu/linux-and-gnu.html.
|
|
@ -473,4 +473,4 @@ situation.
|
|||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
to permit their use in free software.
|
|
@ -704,4 +704,4 @@ program into proprietary programs. If your program is a subroutine
|
|||
library, you may consider it more useful to permit linking proprietary
|
||||
applications with the library. If this is what you want to do, use the
|
||||
GNU Lesser General Public License instead of this License. But first,
|
||||
please read https://www.gnu.org/licenses/why-not-lgpl.html.
|
||||
please read https://www.gnu.org/licenses/why-not-lgpl.html.
|
|
@ -10,4 +10,4 @@
|
|||
TODO
|
||||
----
|
||||
|
||||
.. todolist::
|
||||
.. todolist::
|
|
@ -511,4 +511,4 @@ necessary. Here is a sample; alter the names:
|
|||
signature of Ty Coon, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
That's all there is to it!
|
|
@ -3139,4 +3139,4 @@ Xtensa---:samp:`{config/xtensa/constraints.md}`
|
|||
Integer constant valid for BccI instructions
|
||||
|
||||
``L``
|
||||
Unsigned constant valid for BccUI instructions
|
||||
Unsigned constant valid for BccUI instructions
|
|
@ -10,4 +10,4 @@ Permission is granted to copy, distribute and/or modify this document
|
|||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is in the :ref:`gnu_fdl`.
|
||||
A copy of the license is in the :ref:`gnu_fdl`.
|
|
@ -3,4 +3,4 @@
|
|||
This is part of the GCC manual.
|
||||
For copying conditions, see the copyright.rst file.
|
||||
|
||||
.. include:: ../../../doc/gpl-3.0.rst
|
||||
.. include:: ../../../doc/gpl-3.0.rst
|
|
@ -3,4 +3,4 @@
|
|||
This is part of the GCC manual.
|
||||
For copying conditions, see the copyright.rst file.
|
||||
|
||||
.. include:: ../../../doc/gnu_free_documentation_license.rst
|
||||
.. include:: ../../../doc/gnu_free_documentation_license.rst
|
|
@ -19,4 +19,4 @@ package documentation, see https://dlang.org/.
|
|||
general-public-license-3
|
||||
gnu-free-documentation-license
|
||||
|
||||
indices-and-tables
|
||||
indices-and-tables
|
|
@ -1 +1 @@
|
|||
.. include:: ../../../doc/indices-and-tables.rst
|
||||
.. include:: ../../../doc/indices-and-tables.rst
|
|
@ -45,4 +45,4 @@ Options
|
|||
|
||||
.. only:: man
|
||||
|
||||
.. include:: copyright.rst
|
||||
.. include:: copyright.rst
|
|
@ -167,4 +167,4 @@ In addition to the many :command:`gcc` options controlling code generation,
|
|||
|
||||
Generates code expanded from D ``mixin`` statements and writes the
|
||||
processed sources to :samp:`{file}`. This is useful to debug errors in compilation
|
||||
and provides source for debuggers to show when requested.
|
||||
and provides source for debuggers to show when requested.
|
|
@ -28,4 +28,4 @@ interest to developers or language tooling.
|
|||
program is being compiled. This includes listing all modules that are
|
||||
processed through the ``parse``, ``semantic``, ``semantic2``, and
|
||||
``semantic3`` stages; all ``import`` modules and their file paths;
|
||||
and all ``function`` bodies that are being compiled.
|
||||
and all ``function`` bodies that are being compiled.
|
|
@ -42,4 +42,4 @@ A Ddoc source file contains code in the D macro processor language. It is
|
|||
primarily designed for use in producing user documentation from embedded
|
||||
comments, with a slight affinity towards HTML generation. If a :samp:`.d`
|
||||
source file starts with the string ``Ddoc`` then it is treated as general
|
||||
purpose documentation, not as a D source file.
|
||||
purpose documentation, not as a D source file.
|
|
@ -89,4 +89,4 @@ other parts of the compiler:
|
|||
|
||||
Do not search the standard system directories for D source and interface
|
||||
files. Only the directories that have been specified with :option:`-I` options
|
||||
(and the directory of the current file, if appropriate) are searched.
|
||||
(and the directory of the current file, if appropriate) are searched.
|
|
@ -56,4 +56,4 @@ a link step.
|
|||
On systems that provide :samp:`libgphobos` and :samp:`libgdruntime` as a
|
||||
shared and a static library, this option forces the use of the static
|
||||
version. If no static version was built when the compiler was configured,
|
||||
this option has no effect.
|
||||
this option has no effect.
|
|
@ -311,4 +311,4 @@ These options affect the runtime behavior of programs compiled with
|
|||
Turns off emission of declarations that can be defined in multiple objects as
|
||||
weak symbols. The default is to emit all public symbols as weak, unless the
|
||||
target lacks support for weak symbols. Disabling this option means that common
|
||||
symbols are instead put in COMDAT or become private.
|
||||
symbols are instead put in COMDAT or become private.
|
|
@ -145,4 +145,4 @@ specified, they do not prevent compilation of the program.
|
|||
List all variables going into thread local storage.
|
||||
|
||||
:samp:`vmarkdown`
|
||||
List instances of Markdown replacements in Ddoc.
|
||||
List instances of Markdown replacements in Ddoc.
|
|
@ -53,4 +53,4 @@ used, then those constructs are not permitted in identifiers.
|
|||
.. [#f1] UTF-16 does not meet the requirements of the C
|
||||
standard for a wide character set, but the choice of 16-bit
|
||||
``wchar_t`` is enshrined in some system ABIs so we cannot fix
|
||||
this.
|
||||
this.
|
|
@ -408,4 +408,4 @@ but not with others that don't.
|
|||
|
||||
#if defined __has_include && __has_include ("header.h") /* not portable */
|
||||
...
|
||||
#endif
|
||||
#endif
|
|
@ -29,4 +29,4 @@ There are three general reasons to use a conditional.
|
|||
|
||||
Simple programs that do not need system-specific logic or complex
|
||||
debugging hooks generally will not need to use preprocessing
|
||||
conditionals.
|
||||
conditionals.
|
|
@ -41,4 +41,4 @@ remains syntactically valid when it is not to be used.
|
|||
|
||||
conditional-uses
|
||||
conditional-syntax
|
||||
deleted-code
|
||||
deleted-code
|
|
@ -21,4 +21,4 @@ A copy of the license is included in the :ref:`gnu_fdl`.
|
|||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.
|
||||
funds for GNU development.
|
|
@ -31,4 +31,4 @@ comment, instead. The interior of ``#if 0`` must consist of complete
|
|||
tokens; in particular, single-quote characters must balance. Comments
|
||||
often contain unbalanced single-quote characters (known in English as
|
||||
apostrophes). These confuse ``#if 0``. They don't confuse
|
||||
:samp:`/*`.
|
||||
:samp:`/*`.
|
|
@ -48,4 +48,4 @@ Neither :samp:`#error` nor :samp:`#warning` macro-expands its argument.
|
|||
Internal whitespace sequences are each replaced with a single space.
|
||||
The line must consist of complete tokens. It is wisest to make the
|
||||
argument of these directives be a single string constant; this avoids
|
||||
problems with apostrophes and the like.
|
||||
problems with apostrophes and the like.
|
|
@ -20,4 +20,4 @@ Note that you can also specify places to search using options such as
|
|||
environment variables, which in turn take precedence over the
|
||||
configuration of GCC.
|
||||
|
||||
.. include:: ../../../doc/cppenv.rst
|
||||
.. include:: ../../../doc/cppenv.rst
|
|
@ -3,4 +3,4 @@
|
|||
This is part of the GCC manual.
|
||||
For copying conditions, see the copyright.rst file.
|
||||
|
||||
.. include:: ../../../doc/gnu_free_documentation_license.rst
|
||||
.. include:: ../../../doc/gnu_free_documentation_license.rst
|
|
@ -53,4 +53,4 @@ underscores in header file names, and at most one dot.
|
|||
header-files/alternatives-to-wrapper-ifndef
|
||||
header-files/computed-includes
|
||||
header-files/wrapper-headers
|
||||
header-files/system-headers
|
||||
header-files/system-headers
|
|
@ -37,4 +37,4 @@ Another way to prevent a header file from being included more than once
|
|||
is with the :samp:`#pragma once` directive (see :ref:`pragmas`).
|
||||
:samp:`#pragma once` does not have the problems that :samp:`#import` does,
|
||||
but it is not recognized by all preprocessors, so you cannot rely on it
|
||||
in a portable program.
|
||||
in a portable program.
|
|
@ -83,4 +83,4 @@ These rules are implementation-defined behavior according to the C
|
|||
standard. To minimize the risk of different compilers interpreting your
|
||||
computed includes differently, we recommend you use only a single
|
||||
object-like macro which expands to a string constant. This will also
|
||||
minimize confusion for people reading your program.
|
||||
minimize confusion for people reading your program.
|
|
@ -64,4 +64,4 @@ declarations, etc.
|
|||
|
||||
The line following the :samp:`#include` directive is always treated as a
|
||||
separate line by the C preprocessor, even if the included file lacks a
|
||||
final newline.
|
||||
final newline.
|
|
@ -39,4 +39,4 @@ All of these also interpret :samp:`/` the same way. It is most portable
|
|||
to use only :samp:`/`.)
|
||||
|
||||
It is an error if there is anything (other than comments) on the line
|
||||
after the file name.
|
||||
after the file name.
|
|
@ -49,4 +49,4 @@ The macro ``FILE_FOO_SEEN`` is called the :dfn:`controlling macro` or
|
|||
begin with :samp:`_`. In a system header file, it should begin with
|
||||
:samp:`__` to avoid conflicts with user programs. In any kind of header
|
||||
file, the macro name should contain the name of the file and some
|
||||
additional text, to avoid conflicts with other header files.
|
||||
additional text, to avoid conflicts with other header files.
|
|
@ -50,4 +50,4 @@ Note that you can also prevent the preprocessor from searching any of
|
|||
the default system header directories with the :option:`-nostdinc`
|
||||
option. This is useful when you are compiling an operating system
|
||||
kernel or some other program that does not use the standard C library
|
||||
facilities, or the standard C library itself.
|
||||
facilities, or the standard C library itself.
|
|
@ -38,4 +38,4 @@ There are, however, two ways to make normal headers into system headers:
|
|||
system_header`` has no effect in the primary source file.
|
||||
|
||||
On some targets, such as RS/6000 AIX, GCC implicitly surrounds all
|
||||
system headers with an :samp:`extern "C"` block when compiling as C++.
|
||||
system headers with an :samp:`extern "C"` block when compiling as C++.
|
|
@ -55,4 +55,4 @@ The use of :samp:`#include_next` can lead to great confusion. We
|
|||
recommend it be used only when there is no other alternative. In
|
||||
particular, it should not be used in the headers belonging to a specific
|
||||
program; it should be used only to make global corrections along the
|
||||
lines of :command:`fixincludes`.
|
||||
lines of :command:`fixincludes`.
|
|
@ -94,4 +94,4 @@ and stick to it.
|
|||
question does not arise.
|
||||
|
||||
Note that GCC does not yet implement any of the standard
|
||||
pragmas.
|
||||
pragmas.
|
|
@ -20,4 +20,4 @@ Also documented here are obsolete features still supported by CPP.
|
|||
|
||||
implementation-defined-behavior
|
||||
implementation-limits
|
||||
obsolete-features
|
||||
obsolete-features
|
|
@ -65,4 +65,4 @@ consumed by other processes on the same computer, etc.
|
|||
source file. GNU cpp maps files into memory, so it is limited by the
|
||||
available address space. This is generally at least two gigabytes.
|
||||
Depending on the operating system, the size of physical memory may or
|
||||
may not be a limitation.
|
||||
may not be a limitation.
|
|
@ -32,4 +32,4 @@ useful on its own.
|
|||
environment-variables
|
||||
gnu-free-documentation-license
|
||||
|
||||
indices-and-tables
|
||||
indices-and-tables
|
|
@ -1 +1 @@
|
|||
.. include:: ../../../doc/indices-and-tables.rst
|
||||
.. include:: ../../../doc/indices-and-tables.rst
|
|
@ -161,4 +161,4 @@ readable.
|
|||
|
||||
There is no way to prevent a backslash at the end of a line from being
|
||||
interpreted as a backslash-newline. This cannot affect any correct
|
||||
program, however.
|
||||
program, however.
|
|
@ -78,4 +78,4 @@ options may *not* be grouped: :option:`-dM` is very different from
|
|||
|
||||
.. only:: man
|
||||
|
||||
.. include:: copyright.rst
|
||||
.. include:: copyright.rst
|
|
@ -52,4 +52,4 @@ for subsequent input in the current preprocessor input file.
|
|||
|
||||
:samp:`#line` directives alter the results of the ``__FILE__`` and
|
||||
``__LINE__`` predefined macros from that point on. See :ref:`standard-predefined-macros`. They do not have any effect on :samp:`#include`'s
|
||||
idea of the directory containing the current file.
|
||||
idea of the directory containing the current file.
|
|
@ -34,4 +34,4 @@ macros when you are compiling C++.
|
|||
macros/predefined-macros
|
||||
macros/undefining-and-redefining-macros
|
||||
macros/directives-within-macro-arguments
|
||||
macros/macro-pitfalls
|
||||
macros/macro-pitfalls
|
|
@ -82,4 +82,4 @@ concatenating the argument with :samp:`_command`. Here is how it is done:
|
|||
COMMAND (quit),
|
||||
COMMAND (help),
|
||||
...
|
||||
};
|
||||
};
|
|
@ -36,4 +36,4 @@ which expands to
|
|||
|
||||
1 2 1 2
|
||||
|
||||
with the semantics described above.
|
||||
with the semantics described above.
|
|
@ -52,4 +52,4 @@ parentheses.
|
|||
The first two pairs of parentheses in this expansion come from the
|
||||
macro. The third is the pair that was originally after the macro
|
||||
invocation. Since ``lang_init`` is an object-like macro, it does not
|
||||
consume those parentheses.
|
||||
consume those parentheses.
|
|
@ -109,4 +109,4 @@ their corresponding actual arguments.
|
|||
.. code-block::
|
||||
|
||||
#define foo(x) x, "x"
|
||||
foo(bar) → bar, "x"
|
||||
foo(bar) → bar, "x"
|
|
@ -446,4 +446,4 @@ The syntax error triggered by the tokens ``syntax error`` results in
|
|||
an error message citing line three---the line of ignore_second_arg---
|
||||
even though the problematic code comes from line five.
|
||||
|
||||
We consider this a bug, and intend to fix it in the near future.
|
||||
We consider this a bug, and intend to fix it in the near future.
|
|
@ -123,4 +123,4 @@ Now ``TABLESIZE`` expands (in two stages) to ``37``.
|
|||
If the expansion of a macro contains its own name, either directly or
|
||||
via intermediate macros, it is not expanded again when the expansion is
|
||||
examined for more macros. This prevents infinite recursion.
|
||||
See :ref:`self-referential-macros`, for the precise details.
|
||||
See :ref:`self-referential-macros`, for the precise details.
|
|
@ -871,4 +871,4 @@ These are the named operators and their corresponding punctuators:
|
|||
* - ``xor``
|
||||
- ``^``
|
||||
* - ``xor_eq``
|
||||
- ``^=``
|
||||
- ``^=``
|
|
@ -83,4 +83,4 @@ you have to use two levels of macros.
|
|||
macro-expanded first. But ``s`` is an ordinary argument to
|
||||
``xstr``, so it is completely macro-expanded before ``xstr``
|
||||
itself is expanded (see :ref:`argument-prescan`). Therefore, by the time
|
||||
``str`` gets to its argument, it has already been macro-expanded.
|
||||
``str`` gets to its argument, it has already been macro-expanded.
|
|
@ -64,4 +64,4 @@ same as the old one, the preprocessor issues a warning and changes the
|
|||
macro to use the new definition. If the new definition is effectively
|
||||
the same, the redefinition is silently ignored. This allows, for
|
||||
instance, two different headers to define a common macro. The
|
||||
preprocessor will only complain if the definitions do not match.
|
||||
preprocessor will only complain if the definitions do not match.
|
|
@ -138,4 +138,4 @@ Variadic macros became a standard part of the C language with C99.
|
|||
GNU CPP previously supported them
|
||||
with a named variable argument
|
||||
(:samp:`args...`, not :samp:`...` and ``__VA_ARGS__``), which
|
||||
is still supported for backward compatibility.
|
||||
is still supported for backward compatibility.
|
|
@ -95,4 +95,4 @@ In either form, if no such assertion has been made, :samp:`#unassert` has
|
|||
no effect.
|
||||
|
||||
You can also make or cancel assertions using command-line options.
|
||||
See :ref:`invocation`.
|
||||
See :ref:`invocation`.
|
|
@ -27,4 +27,4 @@ is understood as a preprocessing directive but has no effect on the
|
|||
preprocessor output. The primary significance of the existence of the
|
||||
null directive is that an input line consisting of just a :samp:`#` will
|
||||
produce no output, rather than a line of output containing just a
|
||||
:samp:`#`. Supposedly some old C programs contain such lines.
|
||||
:samp:`#`. Supposedly some old C programs contain such lines.
|
|
@ -64,4 +64,4 @@ manual refer to GNU CPP.
|
|||
character-sets
|
||||
initial-processing
|
||||
tokenization
|
||||
the-preprocessing-language
|
||||
the-preprocessing-language
|
|
@ -118,4 +118,4 @@ GCC plugins may provide their own pragmas.
|
|||
If ``#pragma once`` is seen when scanning a header file, that
|
||||
file will never be read again, no matter what. It is a less-portable
|
||||
alternative to using :samp:`#ifndef` to guard the contents of header files
|
||||
against multiple inclusions.
|
||||
against multiple inclusions.
|
|
@ -83,4 +83,4 @@ preprocessor does not handle the pragma itself), and :samp:`#define` and
|
|||
will be no space between the :samp:`#` and the directive name. If macro
|
||||
expansion happens to generate tokens which might be mistaken for a
|
||||
duplicated directive, a space will be inserted between the :samp:`#` and
|
||||
the directive name.
|
||||
the directive name.
|
|
@ -66,4 +66,4 @@ A preprocessing directive cannot cover more than one line. The line
|
|||
may, however, be continued with backslash-newline, or by a block comment
|
||||
which extends past the end of the line. In either case, when the
|
||||
directive is processed, the continuations have already been merged with
|
||||
the first line to make one long line.
|
||||
the first line to make one long line.
|
|
@ -165,4 +165,4 @@ warning message.
|
|||
|
||||
.. [#f1] The C
|
||||
standard uses the term :dfn:`string literal` to refer only to what we are
|
||||
calling :dfn:`string constants`.
|
||||
calling :dfn:`string constants`.
|
|
@ -71,4 +71,4 @@ require matching quotes. For example:
|
|||
#include <stdio.h
|
||||
|
||||
Just as for the ISO preprocessor, what would be a closing quote can be
|
||||
escaped with a backslash to prevent the quoted text from closing.
|
||||
escaped with a backslash to prevent the quoted text from closing.
|
|
@ -96,4 +96,4 @@ pasting.
|
|||
|
||||
#define suffix(x) foo_/**/x
|
||||
suffix(bar)
|
||||
→ foo_bar
|
||||
→ foo_bar
|
|
@ -27,4 +27,4 @@ preprocessor.
|
|||
* If you use digraphs the behavior is undefined.
|
||||
|
||||
* If a line that looks like a directive appears within macro arguments,
|
||||
the behavior is undefined.
|
||||
the behavior is undefined.
|
|
@ -32,4 +32,4 @@ that actually matter.
|
|||
traditional-lexical-analysis
|
||||
traditional-macros
|
||||
traditional-miscellany
|
||||
traditional-warnings
|
||||
traditional-warnings
|
|
@ -46,4 +46,4 @@ Presently :option:`-Wtraditional` warns about:
|
|||
You can usually avoid the warning, and the related warning about
|
||||
constants which are so large that they are unsigned, by writing the
|
||||
integer constant in question in hexadecimal, with no U suffix. Take
|
||||
care, though, because this gives the wrong result in exotic cases.
|
||||
care, though, because this gives the wrong result in exotic cases.
|
|
@ -16,4 +16,4 @@ the entire resulting derived work is distributed under the terms of a
|
|||
permission notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this manual
|
||||
into another language, under the above conditions for modified versions.
|
||||
into another language, under the above conditions for modified versions.
|
|
@ -281,4 +281,4 @@ Line numbering
|
|||
:maxdepth: 2
|
||||
|
||||
just-which-line-number-anyway
|
||||
representation-of-line-numbers
|
||||
representation-of-line-numbers
|
|
@ -26,4 +26,4 @@ figure out what the code is doing, and why things have been implemented
|
|||
the way they have.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 2
|
|
@ -67,4 +67,4 @@ for the real header files with shorter names. The map from one to the
|
|||
other is found in a special file called :samp:`header.gcc`, stored in the
|
||||
command line (or system) include directories to which the mapping
|
||||
applies. This may be higher up the directory tree than the full path to
|
||||
the file minus the base name.
|
||||
the file minus the base name.
|
|
@ -18,4 +18,4 @@ The GNU C Preprocessor Internals
|
|||
multiple-include-optimization
|
||||
files
|
||||
|
||||
indices-and-tables
|
||||
indices-and-tables
|
|
@ -1 +1 @@
|
|||
.. include:: ../../../doc/indices-and-tables.rst
|
||||
.. include:: ../../../doc/indices-and-tables.rst
|
|
@ -24,4 +24,4 @@ allows rapid replacement of parameters with their arguments during
|
|||
expansion. Despite this optimization it is still necessary to store
|
||||
the original parameters to the macro, both for dumping with e.g.,
|
||||
:option:`-dD`, and to warn about non-trivial macro redefinitions when
|
||||
the parameter names have changed.
|
||||
the parameter names have changed.
|
|
@ -59,4 +59,4 @@ whenever it lexes a preprocessing token that starts a new logical line
|
|||
other than a directive. It passes this token (which may be a
|
||||
``CPP_EOF`` token indicating the end of the translation unit) to the
|
||||
callback routine, which can then use the line and column of this token
|
||||
to produce correct output.
|
||||
to produce correct output.
|
|
@ -88,4 +88,4 @@ to be made. ``_cpp_lex_token`` also handles skipping over tokens in
|
|||
failed conditional blocks, and invalidates the control macro of the
|
||||
multiple-include optimization if a token was successfully lexed outside
|
||||
a directive. In other words, its callers do not need to concern
|
||||
themselves with such issues.
|
||||
themselves with such issues.
|
|
@ -174,4 +174,4 @@ storage from the original input buffer, so a token remains valid and
|
|||
correct even if its source buffer is freed with ``_cpp_pop_buffer``.
|
||||
The storage holding the spellings of such tokens remains until the
|
||||
client program calls cpp_destroy, probably at the end of the translation
|
||||
unit.
|
||||
unit.
|
|
@ -21,4 +21,4 @@ Instead, searching for the parenthesis is handled by a special
|
|||
function, ``funlike_invocation_p``, which remembers padding
|
||||
information as it reads tokens. If the next real token is not an
|
||||
opening parenthesis, it backs up that one token, and then pushes an
|
||||
extra context just containing the padding information if necessary.
|
||||
extra context just containing the padding information if necessary.
|
|
@ -48,4 +48,4 @@ like ``__TIME__``). The macro is re-enabled when its context is
|
|||
later popped from the context stack, as described above. This strict
|
||||
ordering ensures that a macro is disabled whilst its expansion is
|
||||
being scanned, but that it is *not* disabled whilst any arguments
|
||||
to it are being expanded.
|
||||
to it are being expanded.
|
|
@ -21,4 +21,4 @@ This might sound unsafe. However, tokens runs are not re-used at the
|
|||
end of a line if it happens to be in the middle of a macro argument
|
||||
list, and cpplib only wants to back-up more than one lexer token in
|
||||
situations where no macro expansion is involved, so the optimization
|
||||
is safe.
|
||||
is safe.
|
|
@ -114,4 +114,4 @@ so, they return the guard macro to ``do_if`` in the variable
|
|||
``enter_macro_context`` sets ``mi_valid`` to false, so if a macro
|
||||
was expanded whilst parsing any part of the expression, then the
|
||||
top-of-file test in ``push_conditional`` fails and the optimization
|
||||
is turned off.
|
||||
is turned off.
|
|
@ -21,4 +21,4 @@ necessary. However, the lexer does expose some functionality so that
|
|||
clients of the library can easily spell a given token, such as
|
||||
``cpp_spell_token`` and ``cpp_token_len``. These functions are
|
||||
useful when generating diagnostics, and for emitting the preprocessed
|
||||
output.
|
||||
output.
|
|
@ -29,4 +29,4 @@ containing the right hand side of an equivalent ``#define`` or
|
|||
``#assert`` directive. Some built-in macros are handled similarly.
|
||||
Since these are all processed before the first line of the main input
|
||||
file, it will typically have an assigned line closer to twenty than to
|
||||
one.
|
||||
one.
|
|
@ -54,4 +54,4 @@ If instead the algorithm looked for an opening parenthesis first and
|
|||
then tested whether the macro were disabled it would be subtly wrong.
|
||||
In the example above, the replacement list of :samp:`foo` would be
|
||||
popped in the process of finding the parenthesis, re-enabling
|
||||
:samp:`foo` and expanding it a second time.
|
||||
:samp:`foo` and expanding it a second time.
|
|
@ -148,4 +148,4 @@ it is necessary to tell :command:`g++` the location and name of that
|
|||
library. It might also be necessary to specify different startup files
|
||||
and other runtime support libraries, and to suppress the use of GCC's
|
||||
support libraries with one or more of the options :option:`-nostdlib`,
|
||||
:option:`-nostartfiles`, and :option:`-nodefaultlibs`.
|
||||
:option:`-nostartfiles`, and :option:`-nodefaultlibs`.
|
|
@ -30,4 +30,4 @@ environment); refer to their documentation for details.
|
|||
:maxdepth: 2
|
||||
|
||||
conditionally-supported-behavior
|
||||
exception-handling
|
||||
exception-handling
|
|
@ -43,4 +43,4 @@ a freestanding environment); refer to their documentation for details.
|
|||
c-implementation-defined-behavior/preprocessing-directives
|
||||
c-implementation-defined-behavior/library-functions
|
||||
c-implementation-defined-behavior/architecture
|
||||
c-implementation-defined-behavior/locale-specific-behavior
|
||||
c-implementation-defined-behavior/locale-specific-behavior
|
|
@ -44,4 +44,4 @@ Architecture
|
|||
* The value of the result of the ``sizeof`` and ``_Alignof``
|
||||
operators (C90 6.3.3.4, C99 and C11 6.5.3.4).
|
||||
|
||||
Determined by ABI.
|
||||
Determined by ABI.
|
|
@ -43,4 +43,4 @@ Arrays and Pointers
|
|||
The value is as specified in the standard and the type is determined
|
||||
by the ABI.
|
||||
|
||||
.. [#f1] Future versions of GCC may zero-extend, or use a target-defined ``ptr_extend`` pattern. Do not rely on sign extension.
|
||||
.. [#f1] Future versions of GCC may zero-extend, or use a target-defined ``ptr_extend`` pattern. Do not rely on sign extension.
|
|
@ -90,4 +90,4 @@ Characters
|
|||
|
||||
See :ref:`cpp:implementation-defined-behavior`. ``char16_t`` and
|
||||
``char32_t`` literals are always encoded in UTF-16 and UTF-32
|
||||
respectively.
|
||||
respectively.
|
|
@ -11,4 +11,4 @@ Declarators
|
|||
* The maximum number of declarators that may modify an arithmetic,
|
||||
structure or union type (C90 6.5.4).
|
||||
|
||||
GCC is only limited by available memory.
|
||||
GCC is only limited by available memory.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue