mirror of https://github.com/openssl/openssl.git
23 lines
1.2 KiB
Markdown
23 lines
1.2 KiB
Markdown
|
|
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](https://clang.llvm.org/c_status.html#c99), [gcc](https://gcc.gnu.org/c99status.html), [msvc](https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170)), 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 `/* ... */`
|