**Standards compatibility:** Prism accepts C99, C11, and C23 input and emits standard C compatible with GCC, Clang, and MSVC. All standard C type specifiers, qualifiers, storage classes, attributes, and control-flow constructs are recognized and passed through correctly. C23 features including `typeof_unqual`, `constexpr`, `auto` type inference, `_BitInt(N)`, `[[...]]` attributes, `alignas`/`alignof`, `static_assert`, fixed-underlying-type enums (`enum E : int { ... }`), labeled declarations, and if/switch initializers are supported. GCC extensions `__typeof_unqual__` and `__typeof_unqual` are recognized as `TT_TYPE | TT_TYPEOF` and handled identically to C23 `typeof_unqual`. C23 TS 18661 extended float types (`_Float16`, `_Float32`, `_Float64`, `_Float128`, `_Float32x`, `_Float64x`, `_Float128x`) and decimal float types (`_Decimal32`, `_Decimal64`, `_Decimal128`) are registered as `TT_TYPE` keywords, ensuring zero-initialization and declaration detection work correctly. GCC-specific float types (`__float128`, `__float80`, `__fp16`, `__bf16`) are similarly registered. Do note Prism IS NOT officially certified in any way.
0 commit comments