Commit b76f5d16 by Joseph Myers Committed by Joseph Myers

implement-c.texi: Document C11 implementation-defined behavior.

	* doc/implement-c.texi: Document C11 implementation-defined
	behavior.  Refer to -ffp-contract=fast for contraction behavior.
	* doc/invoke.texi (-std=c99, std=c11): Update description of
	completeness.
	(-std=gnu99): Don't mention as future default.
	(-std=gnu11): Mention as intended future default.
	* doc/standards.texi: Update descriptions of C99 and C11 support.
	Limit statement about C99 facilities for freestanding
	implementations to some platforms only.

From-SVN: r205505
parent a6797ed6
2013-11-29 Joseph Myers <joseph@codesourcery.com>
* doc/implement-c.texi: Document C11 implementation-defined
behavior. Refer to -ffp-contract=fast for contraction behavior.
* doc/invoke.texi (-std=c99, std=c11): Update description of
completeness.
(-std=gnu99): Don't mention as future default.
(-std=gnu11): Mention as intended future default.
* doc/standards.texi: Update descriptions of C99 and C11 support.
Limit statement about C99 facilities for freestanding
implementations to some platforms only.
2013-11-28 Jakub Jelinek <jakub@redhat.com> 2013-11-28 Jakub Jelinek <jakub@redhat.com>
PR middle-end/59327 PR middle-end/59327
...@@ -1654,16 +1654,24 @@ ISO C90 as modified in amendment 1. ...@@ -1654,16 +1654,24 @@ ISO C90 as modified in amendment 1.
@itemx c9x @itemx c9x
@itemx iso9899:1999 @itemx iso9899:1999
@itemx iso9899:199x @itemx iso9899:199x
ISO C99. Note that this standard is not yet fully supported; see ISO C99. This standard is substantially completely supported, modulo
bugs, extended identifiers (supported except for corner cases when
@option{-fextended-identifiers} is used) and floating-point issues
(mainly but not entirely relating to optional C99 features from
Annexes F and G). See
@w{@uref{http://gcc.gnu.org/c99status.html}} for more information. The @w{@uref{http://gcc.gnu.org/c99status.html}} for more information. The
names @samp{c9x} and @samp{iso9899:199x} are deprecated. names @samp{c9x} and @samp{iso9899:199x} are deprecated.
@item c11 @item c11
@itemx c1x @itemx c1x
@itemx iso9899:2011 @itemx iso9899:2011
ISO C11, the 2011 revision of the ISO C standard. ISO C11, the 2011 revision of the ISO C standard. This standard is
Support is incomplete and experimental. The name @samp{c1x} is substantially completely supported, modulo bugs, extended identifiers
deprecated. (supported except for corner cases when
@option{-fextended-identifiers} is used), floating-point issues
(mainly but not entirely relating to optional C11 features from
Annexes F and G) and the optional Annexes K (Bounds-checking
interfaces) and L (Analyzability). The name @samp{c1x} is deprecated.
@item gnu90 @item gnu90
@itemx gnu89 @itemx gnu89
...@@ -1672,13 +1680,12 @@ is the default for C code. ...@@ -1672,13 +1680,12 @@ is the default for C code.
@item gnu99 @item gnu99
@itemx gnu9x @itemx gnu9x
GNU dialect of ISO C99. When ISO C99 is fully implemented in GCC, GNU dialect of ISO C99. The name @samp{gnu9x} is deprecated.
this will become the default. The name @samp{gnu9x} is deprecated.
@item gnu11 @item gnu11
@itemx gnu1x @itemx gnu1x
GNU dialect of ISO C11. Support is incomplete and experimental. The GNU dialect of ISO C11. This is intended to become the default in a
name @samp{gnu1x} is deprecated. future release of GCC. The name @samp{gnu1x} is deprecated.
@item c++98 @item c++98
@itemx c++03 @itemx c++03
......
...@@ -85,8 +85,8 @@ as @dfn{AMD1}; the amended standard is sometimes known as @dfn{C94} or ...@@ -85,8 +85,8 @@ as @dfn{AMD1}; the amended standard is sometimes known as @dfn{C94} or
@option{-pedantic} to receive all required diagnostics). @option{-pedantic} to receive all required diagnostics).
A new edition of the ISO C standard was published in 1999 as ISO/IEC A new edition of the ISO C standard was published in 1999 as ISO/IEC
9899:1999, and is commonly known as @dfn{C99}. GCC has incomplete 9899:1999, and is commonly known as @dfn{C99}. GCC has substantially
support for this standard version; see complete support for this standard version; see
@uref{http://gcc.gnu.org/c99status.html} for details. To select this @uref{http://gcc.gnu.org/c99status.html} for details. To select this
standard, use @option{-std=c99} or @option{-std=iso9899:1999}. (While in standard, use @option{-std=c99} or @option{-std=iso9899:1999}. (While in
development, drafts of this standard version were referred to as development, drafts of this standard version were referred to as
...@@ -97,8 +97,8 @@ Corrigenda published in 2001, 2004 and 2007. GCC does not support the ...@@ -97,8 +97,8 @@ Corrigenda published in 2001, 2004 and 2007. GCC does not support the
uncorrected version. uncorrected version.
A fourth version of the C standard, known as @dfn{C11}, was published A fourth version of the C standard, known as @dfn{C11}, was published
in 2011 as ISO/IEC 9899:2011. GCC has limited incomplete support for in 2011 as ISO/IEC 9899:2011. GCC has substantially complete support
parts of this standard, enabled with @option{-std=c11} or for this standard, enabled with @option{-std=c11} or
@option{-std=iso9899:2011}. (While in development, drafts of this @option{-std=iso9899:2011}. (While in development, drafts of this
standard version were referred to as @dfn{C1X}.) standard version were referred to as @dfn{C1X}.)
...@@ -111,10 +111,9 @@ select an extended version of the C language explicitly with ...@@ -111,10 +111,9 @@ select an extended version of the C language explicitly with
@option{-std=gnu90} (for C90 with GNU extensions), @option{-std=gnu99} @option{-std=gnu90} (for C90 with GNU extensions), @option{-std=gnu99}
(for C99 with GNU extensions) or @option{-std=gnu11} (for C11 with GNU (for C99 with GNU extensions) or @option{-std=gnu11} (for C11 with GNU
extensions). The default, if no C language dialect extensions). The default, if no C language dialect
options are given, is @option{-std=gnu90}; this will change to options are given, is @option{-std=gnu90}; this is intended to change
@option{-std=gnu99} or @option{-std=gnu11} in some future release when to @option{-std=gnu11} in some future release. Some features that are
the C99 or C11 support is part of the C99 standard are
complete. Some features that are part of the C99 standard are
accepted as extensions in C90 mode, and some features that are part of accepted as extensions in C90 mode, and some features that are part of
the C11 standard are accepted as extensions in C90 and C99 modes. the C11 standard are accepted as extensions in C90 and C99 modes.
...@@ -156,7 +155,7 @@ your own arrangements for linking and startup. ...@@ -156,7 +155,7 @@ your own arrangements for linking and startup.
GCC does not provide the library facilities required only of hosted GCC does not provide the library facilities required only of hosted
implementations, nor yet all the facilities required by C99 of implementations, nor yet all the facilities required by C99 of
freestanding implementations; to use the facilities of a hosted freestanding implementations on all platforms; to use the facilities of a hosted
environment, you will need to find them elsewhere (for example, in the environment, you will need to find them elsewhere (for example, in the
GNU C library). @xref{Standard Libraries,,Standard Libraries}. GNU C library). @xref{Standard Libraries,,Standard Libraries}.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment