]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/doc/gcc/c-implementation-defined-behavior/architecture.rst
sphinx: add missing trailing newline
[thirdparty/gcc.git] / gcc / doc / gcc / c-implementation-defined-behavior / architecture.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 .. _architecture-implementation:
7
8 Architecture
9 ************
10
11 * The values or expressions assigned to the macros specified in the
12 headers ``<float.h>``, ``<limits.h>``, and ``<stdint.h>``
13 (C90, C99 and C11 5.2.4.2, C99 7.18.2, C99 7.18.3, C11 7.20.2, C11 7.20.3).
14
15 Determined by ABI.
16
17 * The result of attempting to indirectly access an object with
18 automatic or thread storage duration from a thread other than the one
19 with which it is associated (C11 6.2.4).
20
21 Such accesses are supported, subject to the same requirements for
22 synchronization for concurrent accesses as for concurrent accesses to
23 any object.
24
25 * The number, order, and encoding of bytes in any object
26 (when not explicitly specified in this International Standard) (C99
27 and C11 6.2.6.1).
28
29 Determined by ABI.
30
31 * Whether any extended alignments are supported and the contexts
32 in which they are supported (C11 6.2.8).
33
34 Extended alignments up to 2^{28} (bytes) are supported for
35 objects of automatic storage duration. Alignments supported for
36 objects of static and thread storage duration are determined by the
37 ABI.
38
39 * Valid alignment values other than those returned by an _Alignof
40 expression for fundamental types, if any (C11 6.2.8).
41
42 Valid alignments are powers of 2 up to and including 2^{28}.
43
44 * The value of the result of the ``sizeof`` and ``_Alignof``
45 operators (C90 6.3.3.4, C99 and C11 6.5.3.4).
46
47 Determined by ABI.