19 lines · c
1// RUN: %clang_cc1 -verify -std=c23 -Wall -pedantic %s
2// RUN: %clang_cc1 -verify -std=c2y -Wall -pedantic %s
3
4/* WG14 N3274: Yes
5 * Remove imaginary types
6 */
7
8// Clang has never supported _Imaginary.
9#ifdef __STDC_IEC_559_COMPLEX__
10#error "When did this happen?"
11#endif
12
13_Imaginary float i; // expected-error {{imaginary types are not supported}}
14
15// _Imaginary is a keyword in older language modes, but doesn't need to be one
16// in C2y or later. However, to improve diagnostic behavior, we retain it as a
17// keyword in all language modes -- it is not available as an identifier.
18static_assert(!__is_identifier(_Imaginary));
19