Files
openssl/NOTES-C99.md
sashan 53e5071f34 Document transition from ANSI-C towards C-99
The existing NOTES-ANSI.md are renamed to NOTES-C99.md and updated
accordingly. INSTALL.md lists C-99 compiler instead of ANSI-C now.
Also moving from ANSI-C to C-99 warrants updates to NEWS.md and
CHANGES.md.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
(Merged from https://github.com/openssl/openssl/pull/27751)
2025-06-10 19:58:41 +02:00

1.2 KiB

Notes on C-99

This file contains a list of C-99 features we don't allow for OpenSSL. Starting with 3.6 OpenSSL project is going to gradually adopt C-99 features. The plan is to bring those features in small steps. Either with new code where particular C-99 construct makes sense (think of designated initializers), or when refactoring existing code and using C-99 language feature improves readability/maintainability of the code. C-99 seems to be implemented by major compilers (clang, gcc, msvc), therefore we can opt for permissive policy to adopt C-99 standard. This approach means OpenSSL project accepts all C-99 features except those explicitly listed here. The list here is going to be updated by features we either

  • find not useful (or not a good match) for OpenSSL

  • the feature is not implemented by some non-mainstream compiler which we need to keep supported for benefit of OpenSSL users

The list of C-99 features we don't support in OpenSSL project follows:

  • do not use // for comments, stick to /* ... */