C11 Support in Intel C++ Compiler

The following C11 features are supported by Intel(R) C++ compiler that comes with Intel® Parallel Studio XE and Intel® System Studio.

C11 Language FeatureVersion 15.0Version 16.0Version 17.0Version 18.0
Static AssertYesYesYesYes
Typedef redefinition-YesYesYes
Anonymous struct and union-YesYesYes
New macros in float.h-YesYesYes
_Alignas, _Alignof,max_align_t,stdalign.h-YesYesYes
_Atomic---Yes
Atomic operations-YesYesYes
Macros for Complex values-YesYesYes
Unicode strings-YesYesYes
uchar.h----
_Noreturn,stdnoreturn.h-YesYesYes
_Generic-YesYesYes
__STDC_VERSION__ == 201112L-YesYesYes
_thread_local-YesYesYes

Note:

1. The C11 features are only supported when GNU* gcc in path is 4.6 or higher.
2. On Linux: The C11 features supported by gcc on the path are enabled by default. Use "-std=c11" or "-std=c1x" to turn on the support for all other cases.
3. On macOS*: The C11 features supported by gcc on the path are enabled by default. Use "-std=c11" to turn on the support for all other cases.
4. On Windows: The C11 features can be enabled on Windows using "/Qstd=c11" compiler option

Other relevant articles:

GNU GCC C11 support status: https://gcc.gnu.org/wiki/C11Status 
GNU GCC C99 support status: https://gcc.gnu.org/c99status.html
Intel Compiler C99 support status: https://software.intel.com/en-us/articles/c99-support-in-intel-c-compiler

 

For more complete information about compiler optimizations, see our Optimization Notice.

3 comments

Top
Nathan H.'s picture

Any word on when icc will support the _Atomic keyword? Its an odd feature to be missing.

Ohh, and icc doesn't support arithmetic operations on atomic_* types. That means the atomic support is definitely not C11 compliant.

Jeff (Intel)'s picture

You might want to document that stdatomic.h is supported, and the C11 atomics API is supported, with the exception of _Atomic.  I've personally verified that this is the case in Intel 16 and 17, although not exhaustively.

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.