xref: /llvm-project/clang/test/C/C2y/n3274.c (revision c22625cb3eaf052e2377881d64640196ff5da3d1)
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.
18 static_assert(!__is_identifier(_Imaginary));
19