1 #define typename(x) _Generic((x) 0, \
4 unsigned char: "unsigned char", \
6 unsigned short: "unsigned short", \
8 unsigned int: "unsigned int", \
10 unsigned long: "unsigned long", \
11 long long: "long long", \
12 unsigned long long: "unsigned long long", \
15 long double: "long double", \
21 #define TEST(name, x) \
22 static const char *test_ ## name(void) { return typename(x); }
26 TEST(uchar
, unsigned char)
28 TEST(ushort
, unsigned short)
30 TEST(uint
, unsigned int)
32 TEST(ulong
, unsigned long)
33 TEST(llong
, long long)
34 TEST(ullong
, unsigned long long)
37 TEST(ldouble
, long double)
41 TEST(int128
, __int128
)
44 * check-name: generic-typename
45 * check-command: test-linearize --arch=i386 -fsigned-char $file
63 ret.32 "unsigned char"
75 ret.32 "unsigned short"
99 ret.32 "unsigned long"
111 ret.32 "unsigned long long"