]>
Commit | Line | Data |
---|---|---|
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 | ||
8 | Preprocessing Directives | |
9 | ************************ | |
10 | ||
11 | See :ref:`cpp:implementation-defined-behavior`, for details of these aspects of | |
12 | implementation-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). |