This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
c99status.html update 2009-04-26
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 26 Apr 2009 17:04:37 +0000 (UTC)
- Subject: c99status.html update 2009-04-26
I've applied this patch to c99status.html to update information on
VLAs now the known corner cases are fixed and to expand the discussion
of what would need doing to implement math_errhandling.
I believe the known target-independent C99 conformance issues in GCC
are now:
* Predefined macros (requires library cooperation, glibc patch at
<http://sourceware.org/ml/libc-alpha/2009-04/msg00005.html> pending
review).
* Extended identifiers (see PR 9449 comment 21).
* Floating-point issues. There are actually lots of separate issues
here, not just one (the hardest parts being the optimizer issues
relating to exceptions and rounding modes). These either have PRs
listed as dependencies of PR 16989 (although separate PRs may well
describe overlapping issues), or are detailed in c99status.html.
math_errhandling needs linker and library cooperation as discussed
in more detail in c99status.html after this patch.
Index: c99status.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/c99status.html,v
retrieving revision 1.51
diff -u -r1.51 c99status.html
--- c99status.html 19 Apr 2009 20:29:08 -0000 1.51
+++ c99status.html 26 Apr 2009 16:14:19 -0000
@@ -329,7 +329,16 @@
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>
+on this subject to libc-hacker. The compiler needs to mark its output
+from compilations using <code>-fno-trapping-math</code>
+or <code>-fno-math-errno</code>, possibly using
+the <code>.gnu_attribute</code> mechanism, to indicate that built-in
+function optimizations may have been applied that mean that not all
+calls report error status in a particular way; the static linker
+needs to put this information in executables and shared libraries and
+the C library needs to use it to set <code>math_errhandling</code> at
+startup to a conservatively correct value based on the information
+from the compiler.</li>
<li>GCC doesn't have <code>wprintf</code>, <code>wscanf</code> and
<code>wcsftime</code> format checking support.</li>
@@ -341,12 +350,6 @@
Complex numbers support has not been checked in detail against the
requirements of the C99 standard.</li>
-<li>There are some known bugs (<a
-href="http://gcc.gnu.org/PR39564">39564</a>, <a
-href="http://gcc.gnu.org/PR39581">39581</a>, <a
-href="http://gcc.gnu.org/PR39582">39582</a>) relating to corner cases
-of variable length arrays (VLAs).</li>
-
<li><code><stdint.h></code> is provided by GCC, or fixed where
the system headers provide a nonconforming version, on some but not
yet all systems. On systems where types in this header have been
--
Joseph S. Myers
joseph@codesourcery.com