]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst
sphinx: add missing trailing newline
[thirdparty/gcc.git] / gcc / doc / gcc / c-implementation-defined-behavior / preprocessing-directives.rst
CommitLineData
c63539ff
ML
1..
2 Copyright 1988-2022 Free Software Foundation, Inc.
3 This is part of the GCC manual.
4 For copying conditions, see the copyright.rst file.
5
6.. _preprocessing-directives-implementation:
7
8Preprocessing Directives
9************************
10
11See :ref:`cpp:implementation-defined-behavior`, for details of these aspects of
12implementation-defined behavior.
13
14* The locations within ``#pragma`` directives where header name
15 preprocessing tokens are recognized (C11 6.4, C11 6.4.7).
16
17* How sequences in both forms of header names are mapped to headers
18 or external source file names (C90 6.1.7, C99 and C11 6.4.7).
19
20* Whether the value of a character constant in a constant expression
21 that controls conditional inclusion matches the value of the same character
22 constant in the execution character set (C90 6.8.1, C99 and C11 6.10.1).
23
24* Whether the value of a single-character character constant in a
25 constant expression that controls conditional inclusion may have a
26 negative value (C90 6.8.1, C99 and C11 6.10.1).
27
28* The places that are searched for an included :samp:`<>` delimited
29 header, and how the places are specified or the header is
30 identified (C90 6.8.2, C99 and C11 6.10.2).
31
32* How the named source file is searched for in an included :samp:`""`
33 delimited header (C90 6.8.2, C99 and C11 6.10.2).
34
35* The method by which preprocessing tokens (possibly resulting from
36 macro expansion) in a ``#include`` directive are combined into a header
37 name (C90 6.8.2, C99 and C11 6.10.2).
38
39* The nesting limit for ``#include`` processing (C90 6.8.2, C99
40 and C11 6.10.2).
41
42* Whether the :samp:`#` operator inserts a :samp:`\\` character before
43 the :samp:`\\` character that begins a universal character name in a
44 character constant or string literal (C99 and C11 6.10.3.2).
45
46* The behavior on each recognized non- ``STDC #pragma``
47 directive (C90 6.8.6, C99 and C11 6.10.6).
48
49 See :ref:`cpp:pragmas`, for details of
50 pragmas accepted by GCC on all targets. See :ref:`pragmas`, for details of target-specific pragmas.
51
52* The definitions for ``__DATE__`` and ``__TIME__`` when
53 respectively, the date and time of translation are not available (C90
3ed1b4ce 54 6.8.8, C99 6.10.8, C11 6.10.8.1).