]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/doc/gcc/extensions-to-the-c-language-family.rst
e7a036003d2a5903764d34a2e02e0c814c58cffc
[thirdparty/gcc.git] / gcc / doc / gcc / extensions-to-the-c-language-family.rst
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 .. index:: extensions, C language, C language extensions, pedantic
7
8 .. _c-extensions:
9
10 Extensions to the C Language Family
11 -----------------------------------
12
13 GNU C provides several language features not found in ISO standard C.
14 (The :option:`-pedantic` option directs GCC to print a warning message if
15 any of these features is used.) To test for the availability of these
16 features in conditional compilation, check for a predefined macro
17 ``__GNUC__``, which is always defined under GCC.
18
19 These extensions are available in C and Objective-C. Most of them are
20 also available in C++. See :ref:`c++-extensions`, for extensions that apply *only* to C++.
21
22 Some features that are in ISO C99 but not C90 or C++ are also, as
23 extensions, accepted by GCC in C90 mode and in C++.
24
25 .. toctree::
26 :maxdepth: 2
27
28 extensions-to-the-c-language-family/statements-and-declarations-in-expressions
29 extensions-to-the-c-language-family/locally-declared-labels
30 extensions-to-the-c-language-family/labels-as-values
31 extensions-to-the-c-language-family/nested-functions
32 extensions-to-the-c-language-family/nonlocal-gotos
33 extensions-to-the-c-language-family/constructing-function-calls
34 extensions-to-the-c-language-family/referring-to-a-type-with-typeof
35 extensions-to-the-c-language-family/conditionals-with-omitted-operands
36 extensions-to-the-c-language-family/128-bit-integers
37 extensions-to-the-c-language-family/double-word-integers
38 extensions-to-the-c-language-family/complex-numbers
39 extensions-to-the-c-language-family/additional-floating-types
40 extensions-to-the-c-language-family/half-precision-floating-point
41 extensions-to-the-c-language-family/decimal-floating-types
42 extensions-to-the-c-language-family/hex-floats
43 extensions-to-the-c-language-family/fixed-point-types
44 extensions-to-the-c-language-family/named-address-spaces
45 extensions-to-the-c-language-family/arrays-of-length-zero
46 extensions-to-the-c-language-family/structures-with-no-members
47 extensions-to-the-c-language-family/arrays-of-variable-length
48 extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments
49 extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines
50 extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts
51 extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers
52 extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions
53 extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected
54 extensions-to-the-c-language-family/non-constant-initializers
55 extensions-to-the-c-language-family/compound-literals
56 extensions-to-the-c-language-family/designated-initializers
57 extensions-to-the-c-language-family/case-ranges
58 extensions-to-the-c-language-family/cast-to-a-union-type
59 extensions-to-the-c-language-family/mixed-declarations-labels-and-code
60 extensions-to-the-c-language-family/declaring-attributes-of-functions
61 extensions-to-the-c-language-family/specifying-attributes-of-variables
62 extensions-to-the-c-language-family/specifying-attributes-of-types
63 extensions-to-the-c-language-family/label-attributes
64 extensions-to-the-c-language-family/enumerator-attributes
65 extensions-to-the-c-language-family/statement-attributes
66 extensions-to-the-c-language-family/attribute-syntax
67 extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions
68 extensions-to-the-c-language-family/c++-style-comments
69 extensions-to-the-c-language-family/dollar-signs-in-identifier-names
70 extensions-to-the-c-language-family/the-character-esc-in-constants
71 extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables
72 extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro
73 extensions-to-the-c-language-family/when-is-a-volatile-object-accessed
74 extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code
75 extensions-to-the-c-language-family/alternate-keywords
76 extensions-to-the-c-language-family/incomplete-enum-types
77 extensions-to-the-c-language-family/function-names-as-strings
78 extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function
79 extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions
80 extensions-to-the-c-language-family/support-for-offsetof
81 extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access
82 extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations
83 extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking
84 extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory
85 extensions-to-the-c-language-family/object-size-checking-built-in-functions
86 extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc
87 extensions-to-the-c-language-family/target-builtins
88 extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines
89 extensions-to-the-c-language-family/pragmas-accepted-by-gcc
90 extensions-to-the-c-language-family/unnamed-structure-and-union-fields
91 extensions-to-the-c-language-family/thread-local-storage
92 extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix