C23 Features Supported by Intel® Compiler

ID 767374
Updated 11/17/2023
Version Latest
Public

author-image

By

C23 Features

Following is the status and version of compiler support for C23 Features:

Language FeatureStandard #ICX 2023.2 (oneAPI 2023.2)ICX 2024.0 (oneAPI 2024.0) 
Harmonizing static_assert with C++N2665YesYes 
nodiscard attributeN2267YesYes 
maybe_unused attributeN2270YesYes 
TS 18661 Integration: Remove conditional “WANT” macros from numbered clausesN2359NoNo 
Preprocessor line numbers unspecifiedN2322PartialPartial 
deprecated attributeN2334YesYes 
Attribute: Adding attributeN2335YesYes 
Attribite: Minor attribute wording cleanupsN2554YesYes 
Defining new types in offsetofN2350YesYes 
fallthrough attributeN2408YesYes 
Two's complement sign representationN2412YesYes 
Adding the u8 character prefixN2418YesYes 
Remove support for function definitions with identifier listsN2432YesYes 
[[nodiscard("should have a reason")]]N2448YesYes 
Allowing unnamed parameters in function definitionsN2480YesYes 
Free positioning of labels inside compound statementsN2508YesYes 
Clarification request for C17 example of undefined behaviorN2517NoNo 
Querying attribute supportN2553YesYes 
Binary literalsN2549YesYes 
Allow duplicate attributesN2557YesYes 
Character encoding of diagnostic textN2563YesYes 
What we think we reserveN2572PartialPartial 
Remove mixed wide string literal concatenationN2594YesYes 
Compatibility of Pointers to Arrays with QualifiersN2607PartialPartial 
Unclear type relationship between a format specifier and its argumentN2562YesYes 
String functions for freestanding implementationsN2524NoNo 
Digit separatorsN2626YesYes 
Missing +(x) in tableN2641YesYes 
Add support for preprocessing directives elifdef and elifndefN2645YesYes 
[[maybe_unused]] for labelsN2662YesYes 
Zeros compare equalN2670YesYes 
Negative valuesN2671YesYes 
5.2.4.2.2 cleanupN2672YesYes 
Adding Fundamental Type for N-bit IntegersN2763YesYes 
Adding Fundamental Type for N-bit Integers: Literal suffixes for bit-precise integersN2775YesYes 
Adding Fundamental Type for N-bit Integers: bit-precise bit-fieldsN2969YesYes 
#warning directiveN2686YesYes 
Sterile charactersN2686YesYes 
Integer constant expressionsN2713NoNo 
Numerically equalN2716YesYes 
__has_include for CN2799YesYes 
Annex F overflow and underflowN2747YesYes 
Remove UB from Incomplete Types in Function ParametersN2770YesYes 
Variably-modified typesN2778YesYes 
Types do not have typesN2781YesYes 
5.2.4.2.2 cleanup (N2672 update)N2806YesYes 
Allow 16-bit ptrdiff_tN2808YesYes 
Clarifying integer termsN2837YesYes 
Require exact-width integer type interfacesN2872YesYes 
@, $, and ‘ in the source/execution character setN2701YesYes 
The noreturn attributeN2764YesYes 
*_HAS_SUBNORM==0 implies what?N2797YesYes 
Add annotations for unreachable control flow v2N2826YesYes 
Unicode Sequences More Than 21 Bits are a Constraint Violation r0N2828YesYes 
Make assert() macro user friendly for C and C++ v2N2829NoNo 
Identifier Syntax using Unicode Standard Annex 31N2836YesYes 
No function declarators without prototypesN2841YesYes 
Revised Suggestions of Change for Numerically Equal/EquivalentN2847YesYes 
5.2.4.2.2 Cleanup, Again Again (N2806 update)N2879YesYes 
char8_t: A type for UTF-8 characters and stringsN2653NoNo 
Consistent, Warningless, and Intuitive Initialization with {}N2900NoYes 
Compound Literals with Empty InitializersN3011NoYes 
Not-so-magic - typeof for CN2927YesYes 
Consider renaming remove_qualsN2930YesYes 
Revice spelling of keywords v7N2934YesYes 
Make false and true first-class language features v8N2935YesYes 
Properly define blocks as part of the grammar v3N2937YesYes 
Annex X (replacing Annex H) for IEC 60559 interchangeN2601NoNo 
Indeterminate Values and Trap RepresentationsN2861YesYes 
Remove ATOMIC_VAR_INIT v2N2886YesYes 
Require exact-width integer type interfaces v2N2888YesYes 
Wording Change for Variably-Modified TypesN2992YesYes 
Remove trigraphs??!N2940YesYes 
Relax requirements for variadic parameter lists, V3N2975YesYes 
Unsequenced functionsN2956NoNo 
Type inference for object declarationsN3007NoNo 
constexpr for object definitionsN3018NoNo 
Introduce storage class specifiers for compound literalsN3038NoNo 
Identifier primary expressionsN3034YesYes 
Introduce the nullptr constantN3042PartialYes 
Memory layout of unionsN2929YesYes 
Improved tag compatibilityN3037NoNo 
#embedN3017NoNo 

 

 

1