Joseph S. Myers - gcc-4.2/c99status.html, c99status.html update (original) (raw)
This is the mail archive of the gcc-patches@gcc.gnu.orgmailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
- From: "Joseph S. Myers"
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 13 Feb 2007 23:56:58 +0000 (UTC)
- Subject: gcc-4.2/c99status.html, c99status.html update
As with previous release branches, I've created gcc-4.2/c99status.html and applied the patch below to make the 4.2 branch manual refer to it; I've also updated the toplevel c99status.html to reflect current status.
Index: c99status.html
RCS file: /cvs/gcc/wwwdocs/htdocs/c99status.html,v retrieving revision 1.45 diff -u -r1.45 c99status.html --- c99status.html 21 Sep 2006 14:17:36 -0000 1.45 +++ c99status.html 13 Feb 2007 23:52:24 -0000 @@ -19,6 +19,7 @@
This page describes the C99 support in mainline GCC, not in any particular release. Information is also available on <a +href="gcc-4.2/c99status.html">C99 support in GCC 4.2, C99 support in GCC 4.1, C99 support in GCC 4.0, C99 support in GCC 3.4, <a @@ -207,7 +208,7 @@
STDC_IEC_559
or implement the associated standard
-pragmas.-frounding-math
to
+enable the pragmas globally work in all cases (for example, required
+exceptions may not be generated) and contracting expressions (e.g.,
+using fused multiply-add) is not restricted to source-language
+expressions as required by C99.
math_errhandling
; see
messages <a
@@ -317,31 +322,20 @@
href="http://sources.redhat.com/ml/libc-hacker/2000-06/msg00015.html";>3
on this subject to libc-hacker.-pedantic
warnings don't take proper
-account of the standard version selected.wprintf
, wscanf
and
wcsftime
format checking support.-
_Complex
keyword now works.-
inline
functions do not generate an external
-definition if declared without extern
, but do if declared
-with extern
, the opposite of GCC's handling of
-inline
and extern inline
. This will
-probably require existing glibc headers to be fixincluded.-
[*]
in parameter
-declarations is present, the semantics are not; and in general the
-implementation of VLAs has not been checked against C99 requirements.const
-qualified compound literals could share storage
with each other and with string literals, but currently don't.RCS file: gcc-4.2/c99status.html
diff -N gcc-4.2/c99status.html
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gcc-4.2/c99status.html 13 Feb 2007 23:52:24 -0000
@@ -0,0 +1,360 @@
+
+
+
+Status of C99 features in GCC 4.2
+
+
+
+Status of C99 features in GCC 4.2
+
+
This table is based on the list in the foreword to the printed +standard ISO/IEC 9899:1999 (E), as amended by ISO/IEC +9899:1999/Cor.1:2001 (E) and ISO/IEC 9899:1999/Cor.2:2004 (E).
+ +Where "Library Issue" is listed in conjunction with some other +status, this means that some compiler support is needed for the +library support, or desirable in conjunction with it. Note that the +headers required of conforming freestanding implementations (clause 4 +paragraph 6) do not count as library issues.
+ +This page describes the C99 support in GCC 4.2. Information on <a +href="../c99status.html">C99 support in mainline CVS GCC is also +available.
+ +See below the table for further notes on some issues.
+ +Feature | +Library Issue | +Done | +Broken | +Missing | +
---|---|---|---|---|
restricted character set support via digraphs and
+ <iso646.h> (originally specified in AMD1) |
+ + | Done | + | |
wide character library support in
+ <wchar.h> and <wctype.h>
+ (originally specified in AMD1) |
+ Library Issue | +Missing | +||
more precise aliasing rules via effective type | +Done | ++ | ||
restricted pointers | +Done | ++ | ||
variable-length arrays | +Broken | ++ | ||
flexible array members | +Done | + | ||
static and type qualifiersin parameter array declarators |
+ Done | + | ||
complex (and imaginary) support in <complex.h> |
+ Broken | ++ | ||
type-generic math macros in <tgmath.h> |
+ Library Issue | +Done | + | |
the long long int type and library functions |
+ Done | ++ | ||
increased minimum translation limits | +Done | ++ | ||
additional floating-point characteristics in <float.h> |
+ Done | ++ | ||
remove implicit int |
+ Done | ++ | ||
reliable integer division | +Done | + | ||
universal character names (\u and \U ) |
+ Done | + | ||
extended identifiers | +Missing | +|||
hexadecimal floating-point constants and
+ %a and %A
+ printf /scanf conversion specifiers |
+ Library Issue | Done | ++ | |
compound literals | +Done | + | + | |
designated initializers | +Done | + | + | |
// comments |
+ Done | ++ | ||
library functions in <inttypes.h> |
+ Library Issue | ++ | ||
extended integer types in <stdint.h> |
+ + | Missing | +||
remove implicit function declaration | +Done | ++ | ||
preprocessor arithmetic done in intmax_t /uintmax_t |
+ Done | + | ||
mixed declarations and code | +Done | + | ||
new block scopes for selection and iteration statements |
+ Done | + | ||
integer constant type rules | +Done | + | ||
integer promotion rules | +Done | + | ||
macros with a variable number of arguments | +Done | ++ | ||
the vscanf family of functions
+ in<stdio.h> and <wchar.h> |
+ Library Issue | +Done | + | |
additional math library functions in <math.h> |
+ Library Issue | +Missing | +||
floating-point environment access in <fenv.h> |
+ Library Issue | ++ | ||
IEC 60559 (also known as IEC 559 or IEEE arithmetic) support |
+ Broken | + | ||
trailing comma allowed in enum declaration |
+ Done | ++ | ||
%lf conversion specifierallowed in printf |
+ Library Issue | Done | + | |
inline functions | +Broken | ++ | ||
the snprintf family of functions in <stdio.h> |
+ Library Issue | +Done | + | |
boolean type in <stdbool.h> |
+ + | Done | + | |
idempotent type qualifiers | +Done | + | ||
empty macro arguments | +Done | + | ||
new struct type compatibility rules (tag compatibility) |
+ Done | + | ||
additional predefined macro names | +Missing | +|||
_Pragma preprocessing operator |
+ Done | + | ||
standard pragmas | +Missing | +|||
func predefined identifier |
+ Done | ++ | ||
va_copy macro |
+ Done | + | ||
additional strftime conversion specifiers |
+ Library Issue | Done | + | |
deprecate ungetc at thebeginning of a binary file |
+ Library Issue | ++ | ||
remove deprecation of aliased array parameters |
+ Done | ++ | ||
conversion of array to pointer not limited to lvalues | +Done | ++ | ||
relaxed constraints on aggregate and union initialization |
+ Done | ++ | ||
relaxed restrictions on portable header names | +Done | ++ | ||
return without expression not permitted
+ infunction that returns a value (and vice versa) |
+ Done | ++ | ||
Feature | +Library Issue | +Done | +Broken | +Missing | +
Further notes
+ +-
+
+
- cpp has limited support for multibyte character sets. + +
- IEC 60559 is IEEE 754 floating point. This works if and only if
+the hardware is perfectly compliant, but GCC does not define
+
STDC_IEC_559
or implement the associated standard +pragmas; nor do some options such as-frounding-math
to +enable the pragmas globally work in all cases (for example, required +exceptions may not be generated) and contracting expressions (e.g., +using fused multiply-add) is not restricted to source-language +expressions as required by C99.
+
+ - Compiler support is needed for
math_errhandling
; see +messages <a +href="http://sources.redhat.com/ml/libc-hacker/2000-06/msg00008.html";>1, +<a +href="http://sources.redhat.com/ml/libc-hacker/2000-06/msg00014.html";>2, +<a +href="http://sources.redhat.com/ml/libc-hacker/2000-06/msg00015.html";>3 +on this subject to libc-hacker.
+
+ - GCC doesn't have
wprintf
,wscanf
and +wcsftime
format checking support.
+
+ - Complex numbers support does not follow all the requirements of +Annex G and multiplication and division have excess overflows both in +constant folding and at runtime. GCC wrongly promotes both operands +of an operation between complex and real values to a complex type. +Complex numbers support has not been checked in detail against the +requirements of the C99 standard. + +
- C99
inline
functions do not generate an external +definition if declared withoutextern
, but do if declared +withextern
, the opposite of GCC's handling of +inline
andextern inline
. This will +probably require existing glibc headers to be fixincluded.
+
+ - Some details of variable length arrays (VLAs) relating to when +size expressions are evaluated and when the memory for VLAs is freed +are not implemented, and other details are not checked against the +requirements of the C99 standard. + +
const
-qualified compound literals could share storage +with each other and with string literals, but currently don't.
+
+- The information provided by
static
in parameter array +declarators is not used for optimization. It might make sense to use +it in future in conjunction with work +on prefetching.
+
+ - Some changes in TC2 may not have been implemented. + +
- The list above differs from that in the C99 standard (as amended
+by TC1) as follows:
+"LIA compatibility annex" is removed, since it refers to C99's
+conformance to another standard rather than something for C
+implementations to do. The
<stdint.h>
and +<inttypes.h>
entries have been separated, but are a +single entry in C99.
+
+
--- doc/standards.texi (revision 121895) +++ doc/standards.texi (working copy) @@ -79,7 +79,7 @@ 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 support for this standard version; see -@uref{http://gcc.gnu.org/c99status.html} for details. To select this +@uref{http://gcc.gnu.org/gcc-4.2/c99status.html} for details. To select this standard, use @option{-std=c99} or @option{-std=iso9899:1999}. (While in development, drafts of this standard version were referred to as @dfn{C9X}.) Index: doc/invoke.texi
--- doc/invoke.texi (revision 121895) +++ doc/invoke.texi (working copy) @@ -1181,7 +1181,7 @@ @itemx iso9899:1999 @itemx iso9899:199x ISO C99. Note that this standard is not yet fully supported; see -@w{@uref{http://gcc.gnu.org/c99status.html}} for more information. The +@w{@uref{http://gcc.gnu.org/gcc-4.2/c99status.html}} for more information. The names @samp{c9x} and @samp{iso9899:199x} are deprecated. @item gnu89 Index: ChangeLog
--- ChangeLog (revision 121895) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2007-02-13 Joseph S. Myers joseph@codesourcery.com + + * doc/invoke.texi, doc/standards.texi: Refer to + gcc-4.2/c99status.html. + 2007-02-10 John David Anglin dave.anglin@nrc-cnrc.gc.ca
PR target/30634
-- Joseph S. Myers joseph@codesourcery.com
- Follow-Ups:
- Re: gcc-4.2/c99status.html, c99status.html update
* From: Gerald Pfeifer
- Re: gcc-4.2/c99status.html, c99status.html update
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |