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.
6 .. _preprocessing-directives-implementation:
8 Preprocessing Directives
9 ************************
11 See :ref:`cpp:implementation-defined-behavior`, for details of these aspects of
12 implementation-defined behavior.
14 * The locations within ``#pragma`` directives where header name
15 preprocessing tokens are recognized (C11 6.4, C11 6.4.7).
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).
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).
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).
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).
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).
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).
39 * The nesting limit for ``#include`` processing (C90 6.8.2, C99
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).
46 * The behavior on each recognized non- ``STDC #pragma``
47 directive (C90 6.8.6, C99 and C11 6.10.6).
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.
52 * The definitions for ``__DATE__`` and ``__TIME__`` when
53 respectively, the date and time of translation are not available (C90
54 6.8.8, C99 6.10.8, C11 6.10.8.1).