I was more thinking feature guards, and yeah I agree it is crazy that modern compilers and popular FFI layers alike don't [fully] support a 22 year old C standard. However, this means that targetting the 31 year old C standard is the only genuinely portable [C] solution. I'll stick to the less feature rich [toy] greatest.h for now… On Thu, 14 Jan 2021, 4:58 pm Andreas Schneider, <asn@cryptomilk.org> wrote:
On Thursday, 14 January 2021 06:39:33 CET Samuel Marks wrote:
All platforms: yes All compilers: no.
Most are just toy compilers, some are special (tcc) https://en.wikipedia.org/wiki/List_of_compilers#C_compilers
In terms of which "mainstream" compilers FULLY support a C standard greater than C89, all of GCC, Clang, and I think Intel's oneAPI DPC++ / C++ Compiler also. But not MSVC.
For MSVC not supporting C99 it compiles just fine with C99 features in use:
https://gitlab.com/cmocka/cmocka/-/pipelines/241222132
The default standard for Intel is C89
https://software.intel.com/content/www/us/en/develop/articles/c99-support-in
-intel-c-compiler.html
I do not plan to stop or reverting C99 features we already use in cmocka. We are already past that point since some years. Also 20 years to adopt C99 is enough time.
If you require C89 then might be good idea to use a different unit testing framework. As I said I will not move backwards as we use C99 feature since years already.
Andreas