| 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 inidentifiers | 3.1 | Yes | Yes | ||||||||
| Increasedtranslation limits | N590 | 0.9 | N/A | ||||||||
| //comments | N644 | 2.7 | Yes | Yes | |||||||
| restrict pointers | N448 | 2.95 | Yes | partial* | |||||||
| Enhancedarithmetic 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 inenumerator-list | 0.9 | Yes | Yes | ||||||||
| Hexadecimalfloating 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 | ||||||||
Implicitreturn0; in themain() function | Yes | Yes | Yes | ||||||||
| Declarations and statements in mixed order | N740 | 3.0 | Yes | Yes | |||||||
| init-statement infor loops | Yes | Yes | Yes | ||||||||
| inline functions | N741 | 4.3 | Yes | Yes | |||||||
| Predefined variable__func__ | N611 | 2.95 | Yes | Yes | |||||||
| Cvr-qualifiers andstatic 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 |