Compiler support for C99
From cppreference.net
<
c
|
compiler support
C99 core language features
|
This section is incomplete
Reason: needs to list C compilers, verification |
|
C99 feature
|
Paper(s)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| Universal-character-names in identifiers | 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 | 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 | 1.21 | N/A | |||||||||
| Idempotent cvr-qualifiers | N505 | 3.0 | N/A | ||||||||
| Trailing comma in enumerator-list | 0.9 | Yes | Yes | ||||||||
| Hexadecimal floating constants | N308 | 2.8 | Yes | Yes | |||||||
| Compound literals | N716 | 3.1 | Yes | Yes | |||||||
| Floating-point environment | partial | partial | |||||||||
| Requiring truncation for divisions of signed integer types | N617 | 0.9 | N/A | ||||||||
Implicit
return
0
;
in the
main()
function
|
Yes | Yes | Yes | ||||||||
| Declarations and statements in mixed order | N740 | 3.0 | Yes | Yes | |||||||
| init-statement in for loops | 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 | 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 | ||||||||
|
C99 feature |
Paper(s) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|