Compiler support for C99

From cppreference.com

C99 core language features

C99 feature

 
Paper(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Universal-character-names in identifiers N/A 3.1 Yes Yes
Increased translation limits N590 0.9 N/A
// comments N644 2.7 Yes Yes
restrict pointers N448 2.95 Yes partial*
Enhanced arithmetic types N815
N601
N620
N638
N657
N694
N809
Yes partial Maybe
Flexible array members N/A 3.0 Yes Yes
Variable-length array (VLA) types N683 0.9 Yes
Variably-modified (VM) types N2778 N/A Yes
Designated initializers N494 3.0 Yes Yes
Non-constant initializers N/A 1.21 N/A
Idempotent cvr-qualifiers N505 3.0 N/A
Trailing comma in enumerator-list N/A 0.9 Yes Yes
Hexadecimal floating constants N308 2.8 Yes Yes
Compound literals N716 3.1 Yes Yes
Floating-point environment N/A partial partial
Requiring truncation for divisions of signed integer types N617 0.9 N/A
Implicit return 0; in the main() function N/A Yes Yes Yes
Declarations and statements in mixed order N740 3.0 Yes Yes
init-statement in for loops N/A Yes Yes Yes
inline functions N741 4.3 Yes Yes
Predefined variable __func__ N611 2.95 Yes Yes
Cvr-qualifiers and static in [] within function declarations N/A 3.1 Yes
Variadic macros N707 2.95 Yes Yes
_Pragma preprocessor operator N634 3.0 Yes partial*
Standard pragmas for floating-point evaluation N631
N696
No No Yes
 

C99 feature
 

Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc