[all-commits] [llvm/llvm-project] 918ef3: [C99] Claim full conformance to C99

Aaron Ballman via All-commits all-commits at lists.llvm.org
Fri Jun 21 10:48:28 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 918ef312d1fda56ff783f3974b5a193542e5497c
      https://github.com/llvm/llvm-project/commit/918ef312d1fda56ff783f3974b5a193542e5497c
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-06-21 (Fri, 21 Jun 2024)

  Changed paths:
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Claim full conformance to C99

We now believe we know the status of all the proposals that went into
C99. There are three entries marked Partial:

N448 restricted pointers
------------------------
Clang fully conforms to the standard requirements, but LLVM support
could be improved to support more than just restricted pointers used
as function parameters.

N693 complex and imaginary support in <complex.h>
-------------------------------------------------
Clang supports _Complex but not _Imaginary. Clang does not attempt to
implement Annex G, so a lack of _Imaginary is not necessary for
conformance to C99. It's also worth noting that C2y is anticipated to
remove support for _Imaginary (see WG14 N3274 which was adopted at the
June 2024 meeting).

However, support for _Complex requires runtime support and compiler-rt
is not supported on all targets (notably, Windows).

(Doc # unknown) IEC 60559 support
---------------------------------
Clang largely conforms to the requirements in Annex F, but there are
edge cases that are incorrect. However, Clang does not predefine the
__STDC_IEC_559__ macro and so we don't claim to conform to Annex F yet.

Because all three of these partial entries are technically conforming,
it seems reasonable to claim full conformance for C99.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list