This is the mail archive of the gcc-patches@gcc.gnu.org mailing 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]

gcc-4.4/c99status.html


As with previous release branches I've created a gcc-4.4/c99status.html 
file and made the manual on 4.4 branch point to that instead of the file 
for mainline.  In the course of doing this I noticed stray CVS references 
in the files for past releases, so updated them not to refer to a 
particular version control system.

Index: c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/c99status.html,v
retrieving revision 1.48
diff -u -r1.48 c99status.html
--- c99status.html	20 Feb 2008 18:22:37 -0000	1.48
+++ c99status.html	29 Mar 2009 02:19:17 -0000
@@ -21,6 +21,7 @@
 
 <p>This page describes the C99 support in mainline GCC, not in any
 particular release.  Information is also available on <a
+href="gcc-4.4/c99status.html">C99 support in GCC 4.4</a>, <a
 href="gcc-4.3/c99status.html">C99 support in GCC 4.3</a>, <a
 href="gcc-4.2/c99status.html">C99 support in GCC 4.2</a>, <a
 href="gcc-4.1/c99status.html">C99 support in GCC 4.1</a>, <a
Index: gcc-3.0/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-3.0/c99status.html,v
retrieving revision 1.6
diff -u -r1.6 c99status.html
--- gcc-3.0/c99status.html	29 Jun 2004 19:54:29 -0000	1.6
+++ gcc-3.0/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -17,7 +17,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 3.0.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-3.1/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-3.1/c99status.html,v
retrieving revision 1.5
diff -u -r1.5 c99status.html
--- gcc-3.1/c99status.html	29 Jun 2004 19:54:29 -0000	1.5
+++ gcc-3.1/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -18,7 +18,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 3.1 and 3.2.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-3.3/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-3.3/c99status.html,v
retrieving revision 1.4
diff -u -r1.4 c99status.html
--- gcc-3.3/c99status.html	29 Jun 2004 19:54:29 -0000	1.4
+++ gcc-3.3/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -18,7 +18,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 3.3.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-3.4/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-3.4/c99status.html,v
retrieving revision 1.3
diff -u -r1.3 c99status.html
--- gcc-3.4/c99status.html	29 Jun 2004 19:54:29 -0000	1.3
+++ gcc-3.4/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -18,7 +18,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 3.4.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-4.0/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.0/c99status.html,v
retrieving revision 1.1
diff -u -r1.1 c99status.html
--- gcc-4.0/c99status.html	26 Feb 2005 01:38:31 -0000	1.1
+++ gcc-4.0/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -18,7 +18,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 4.0.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-4.1/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.1/c99status.html,v
retrieving revision 1.1
diff -u -r1.1 c99status.html
--- gcc-4.1/c99status.html	4 Dec 2005 19:23:59 -0000	1.1
+++ gcc-4.1/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -18,7 +18,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 4.1.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-4.2/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.2/c99status.html,v
retrieving revision 1.1
diff -u -r1.1 c99status.html
--- gcc-4.2/c99status.html	13 Feb 2007 23:54:54 -0000	1.1
+++ gcc-4.2/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -18,7 +18,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 4.2.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-4.3/c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.3/c99status.html,v
retrieving revision 1.1
diff -u -r1.1 c99status.html
--- gcc-4.3/c99status.html	20 Feb 2008 18:22:37 -0000	1.1
+++ gcc-4.3/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -20,7 +20,7 @@
 paragraph 6) do not count as library issues.</p>
 
 <p>This page describes the C99 support in GCC 4.3.  Information on <a
-href="../c99status.html">C99 support in mainline CVS GCC</a> is also
+href="../c99status.html">C99 support in mainline GCC</a> is also
 available.</p>
 
 <p>See below the table for further notes on some issues.</p>
Index: gcc-4.4/c99status.html
===================================================================
RCS file: gcc-4.4/c99status.html
diff -N gcc-4.4/c99status.html
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gcc-4.4/c99status.html	29 Mar 2009 02:19:17 -0000
@@ -0,0 +1,358 @@
+<html>
+
+<head>
+<title>Status of C99 features in GCC 4.4</title>
+</head>
+
+<body>
+<h1>Status of C99 features in GCC 4.4</h1>
+
+<p>This table is based on the list in the foreword to <a
+href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf";>N1256</a>
+(ISO/IEC 9899:1999 (E), consolidated with ISO/IEC 9899:1999/Cor.1:2001
+(E), ISO/IEC 9899:1999/Cor.2:2004 (E) and ISO/IEC 9899:1999/Cor.3:2007
+(E)).</p>
+
+<p>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.</p>
+
+<p>This page describes the C99 support in GCC 4.4.  Information on <a
+href="../c99status.html">C99 support in mainline GCC</a> is also
+available.</p>
+
+<p>See below the table for further notes on some issues.</p>
+
+<table border="1">
+<tr><th>Feature</th>
+    <th>Library Issue</th>
+    <th>Done</th>
+    <th>Broken</th>
+    <th>Missing</th>
+</tr>
+
+<tr><td><em>restricted character set support via digraphs and
+    <br /><code>&lt;iso646.h&gt;</code> (originally specified in AMD1)</em></td>
+    <td></td>
+    <td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>wide character library support in
+    <code>&lt;wchar.h&gt;</code><br />and <code>&lt;wctype.h&gt;</code>
+    (originally specified in AMD1)</em></td>
+    <td>Library Issue</td>
+    <td></td><td></td><td>Missing</td>
+</tr>
+
+<tr><td><em>more precise aliasing rules via effective type</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>restricted pointers</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>variable-length arrays</em></td>
+    <td></td><td></td><td>Broken</td>
+    <td></td>
+</tr>
+
+<tr><td><em>flexible array members</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em><code>static</code> and type qualifiers<br />in parameter array declarators</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>complex (and imaginary) support in <code>&lt;complex.h&gt;</code></em></td>
+    <td></td><td></td><td>Broken</td>
+    <td></td>
+</tr>
+
+<tr><td><em>type-generic math macros in <code>&lt;tgmath.h&gt;</code></em></td>
+    <td>Library Issue</td>
+    <td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>the <code>long long int</code> type and library functions</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>increased minimum translation limits</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>additional floating-point characteristics<br />in <code>&lt;float.h&gt;</code></em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>remove implicit <code>int</code></em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>reliable integer division</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>universal character names (<code>\u</code> and <code>\U</code>)</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>extended identifiers</em></td>
+    <td></td><td></td><td></td><td>Missing</td>
+</tr>
+
+<tr><td><em>hexadecimal floating-point constants and
+    <code>%a</code><br /> and <code>%A</code>
+    <code>printf</code>/<code>scanf</code> conversion specifiers</em></td>
+    <td>Library Issue</td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>compound literals</em></td>
+    <td></td><td>Done</td><td></td>
+    <td></td>
+</tr>
+
+<tr><td><em>designated initializers</em></td>
+    <td></td><td>Done</td><td></td>
+    <td></td>
+</tr>
+
+<tr><td><em><code>//</code> comments</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>library functions in <code>&lt;inttypes.h&gt;</code></em></td>
+    <td>Library Issue</td>
+    <td></td><td></td><td></td>
+</tr>
+
+<tr><td><em>extended integer types in <code>&lt;stdint.h&gt;</code></em></td>
+    <td></td>
+    <td></td><td></td><td>Missing</td>
+</tr>
+
+<tr><td><em>remove implicit function declaration</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>preprocessor arithmetic<br />done in <code>intmax_t</code>/<code>uintmax_t</code></em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>mixed declarations and code</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>new block scopes for selection<br />and iteration statements</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>integer constant type rules</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>integer promotion rules</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>macros with a variable number of arguments</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>the <code>vscanf</code> family of functions
+    in<br /><code>&lt;stdio.h&gt;</code> and <code>&lt;wchar.h&gt;</code></em></td>
+    <td>Library Issue</td>
+    <td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>additional math library functions in <code>&lt;math.h&gt;</code></em></td>
+    <td>Library Issue</td>
+    <td></td><td></td><td></td>
+</tr>
+
+<tr><td><em>treatment of error conditions by math library functions (<code>math_errhandling</code>)</em></td>
+    <td>Library Issue</td>
+    <td></td><td></td><td>Missing</td>
+</tr>
+
+<tr><td><em>floating-point environment access<br />in <code>&lt;fenv.h&gt;</code></em></td>
+    <td>Library Issue</td>
+    <td></td><td></td><td></td>
+</tr>
+
+<tr><td><em>IEC 60559 (also known as<br />IEC 559 or IEEE arithmetic) support</em></td>
+    <td></td><td></td><td>Broken</td><td></td>
+</tr>
+
+<tr><td><em>trailing comma allowed in <code>enum</code> declaration</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em><code>%lf</code> conversion specifier<br />allowed in <code>printf</code></em></td>
+    <td>Library Issue</td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>inline functions</em></td>
+    <td></td><td>Done</td><td></td>
+    <td></td>
+</tr>
+
+<tr><td><em>the <code>snprintf</code> family of functions in <code>&lt;stdio.h&gt;</code></em></td>
+    <td>Library Issue</td>
+    <td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>boolean type in <code>&lt;stdbool.h&gt;</code></em></td>
+    <td></td>
+    <td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>idempotent type qualifiers</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>empty macro arguments</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>new struct type compatibility<br />rules (tag compatibility)</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>additional predefined macro names</em></td>
+    <td></td><td></td><td></td><td>Missing</td>
+</tr>
+
+<tr><td><em><code>_Pragma</code> preprocessing operator</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>standard pragmas</em></td>
+    <td></td><td></td><td></td><td>Missing</td>
+</tr>
+
+<tr><td><em><code>__func__</code> predefined identifier</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em><code>va_copy</code> macro</em></td>
+    <td></td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>additional <code>strftime</code> conversion specifiers</em></td>
+    <td>Library Issue</td><td>Done</td><td></td><td></td>
+</tr>
+
+<tr><td><em>deprecate <code>ungetc</code> at the<br />beginning of a binary file</em></td>
+    <td>Library Issue</td>
+    <td></td><td></td><td></td>
+</tr>
+
+<tr><td><em>remove deprecation of<br />aliased array parameters</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>conversion of array to pointer not limited to lvalues</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>relaxed constraints on aggregate<br />and union initialization</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em>relaxed restrictions on portable header names</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><td><em><code>return</code> without expression not permitted
+    in<br />function that returns a value (and vice versa)</em></td>
+    <td></td><td>Done</td>
+    <td></td><td></td>
+</tr>
+
+<tr><th>Feature</th>
+    <th>Library Issue</th>
+    <th>Done</th>
+    <th>Broken</th>
+    <th>Missing</th>
+</tr>
+</table>
+
+<h2>Further notes</h2>
+
+<ul>
+
+<li>cpp has limited support for multibyte character sets.</li>
+
+<li>IEC 60559 is IEEE 754 floating point.  This works if and only if
+the hardware is perfectly compliant, but GCC does not define
+<code>__STDC_IEC_559__</code> or implement the associated standard
+pragmas; nor do some options such as <code>-frounding-math</code> 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.</li>
+
+<li>Compiler support is needed for <code>math_errhandling</code>; see
+messages <a
+href="http://sources.redhat.com/ml/libc-hacker/2000-06/msg00008.html";>1</a>,
+<a
+href="http://sources.redhat.com/ml/libc-hacker/2000-06/msg00014.html";>2</a>,
+<a
+href="http://sources.redhat.com/ml/libc-hacker/2000-06/msg00015.html";>3</a>
+on this subject to libc-hacker.</li>
+
+<li>GCC doesn't have <code>wprintf</code>, <code>wscanf</code> and
+<code>wcsftime</code> format checking support.</li>
+
+<li>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.</li>
+
+<li>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.</li>
+
+<li><code>const</code>-qualified compound literals could share storage
+with each other and with string literals, but currently don't.</li>
+
+<li>The information provided by <code>static</code> in parameter array
+declarators is not used for optimization.  It might make sense to use
+it in future in conjunction with <a href="../projects/prefetch.html">work
+on prefetching</a>.</li>
+
+<li>The list above differs from that in N1256 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 <code>&lt;stdint.h&gt;</code> and
+<code>&lt;inttypes.h&gt;</code> entries have been separated, but are a
+single entry in C99.</li>
+
+</ul>
+
+</body>
+</html>
Index: doc/standards.texi
===================================================================
--- doc/standards.texi	(revision 145223)
+++ doc/standards.texi	(working copy)
@@ -84,7 +84,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.4/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 145223)
+++ doc/invoke.texi	(working copy)
@@ -1426,7 +1426,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.4/c99status.html}} for more information.  The
 names @samp{c9x} and @samp{iso9899:199x} are deprecated.
 
 @item gnu89
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 145223)
+++ ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2009-03-29  Joseph Myers  <joseph@codesourcery.com>
+
+	* doc/invoke.texi, doc/standards.texi: Refer to
+	gcc-4.4/c99status.html.
+
 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
 
 	* config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]