aboutsummaryrefslogtreecommitdiff
path: root/clang
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2024-06-21 13:20:20 -0400
committerAaron Ballman <aaron@aaronballman.com>2024-06-21 13:28:02 -0400
commit131bc0390dba1bc21fb8af8e5e8afa78a17d39b9 (patch)
tree664b2eeaadffd858d166a6375997882fc1010ed0 /clang
parente23250ecb7e09170e584db60375100790f39fac9 (diff)
downloadllvm-131bc0390dba1bc21fb8af8e5e8afa78a17d39b9.zip
llvm-131bc0390dba1bc21fb8af8e5e8afa78a17d39b9.tar.gz
llvm-131bc0390dba1bc21fb8af8e5e8afa78a17d39b9.tar.bz2
[C99] Claim partial conformance to IEC 60559 support
We intend to support Annex F but there are edge cases we don't handle properly, such as raising an "invalid" exception when converting some floating-point values to integers. This does not add any test coverage as full conformance would require sufficiently extensive testing that we should consider getting a third-party test suite such as the one from http://tybor.com/
Diffstat (limited to 'clang')
-rw-r--r--clang/www/c_status.html20
1 files changed, 19 insertions, 1 deletions
diff --git a/clang/www/c_status.html b/clang/www/c_status.html
index 170ab0e1..d8700d6 100644
--- a/clang/www/c_status.html
+++ b/clang/www/c_status.html
@@ -277,7 +277,25 @@ conformance.</p>
<tr>
<td>IEC 60559 support</td>
<td>Unknown</td>
- <td class="unknown" align="center">Unknown</td>
+ <td class="partial" align="center">
+ <details><summary>Partial</summary>
+ Clang supports much of the language requirements for Annex F, but
+ full conformance is only possible to determine when considering the
+ compiler's language support, the C runtime library's math library
+ support, and the target system's floating-point environment support.
+ Clang does not currently raise an "invalid" floating-point exception
+ on certain conversions, does not raise floating-point exceptions for
+ arithmetic constant expressions, and other corner cases. Note, Clang
+ does not define <code>__STDC_IEC_559__</code> because the compiler
+ does not fully conform. However, some C standard library
+ implementations
+ (<a href="https://sourceware.org/git/?p=glibc.git;a=blob;f=include/stdc-predef.h">
+ glibc</a>, <a href="https://git.musl-libc.org/cgit/musl/tree/include/stdc-predef.h">
+ musl</a> will define the macro regardless of compiler support unless
+ the compiler defines <code>__GCC_IEC_559</code>, which Clang does not
+ currently define.
+ </details>
+ </td>
</tr>
<tr>
<td>trailing comma allowed in enum declaration</td>