1f08c3bdfSopenharmony_ci#define typename(x) _Generic((x) 0,			\
2f08c3bdfSopenharmony_cichar:			"char",				\
3f08c3bdfSopenharmony_cisigned char:		"signed char",			\
4f08c3bdfSopenharmony_ciunsigned char:		"unsigned char",		\
5f08c3bdfSopenharmony_cidefault:		"???")
6f08c3bdfSopenharmony_ci
7f08c3bdfSopenharmony_ci#define TEST(name, x)	\
8f08c3bdfSopenharmony_cistatic const char *test_ ## name(void) { return typename(x); }
9f08c3bdfSopenharmony_ci
10f08c3bdfSopenharmony_ciTEST(char, char)
11f08c3bdfSopenharmony_ciTEST(schar, signed char)
12f08c3bdfSopenharmony_ciTEST(uchar, unsigned char)
13f08c3bdfSopenharmony_ci
14f08c3bdfSopenharmony_ci/*
15f08c3bdfSopenharmony_ci * check-name: generic-schar
16f08c3bdfSopenharmony_ci * check-command: test-linearize --arch=i386 -fsigned-char $file
17f08c3bdfSopenharmony_ci * check-known-to-fail
18f08c3bdfSopenharmony_ci *
19f08c3bdfSopenharmony_ci * check-output-start
20f08c3bdfSopenharmony_citest_char:
21f08c3bdfSopenharmony_ci.L0:
22f08c3bdfSopenharmony_ci	<entry-point>
23f08c3bdfSopenharmony_ci	ret.32      "char"
24f08c3bdfSopenharmony_ci
25f08c3bdfSopenharmony_ci
26f08c3bdfSopenharmony_citest_schar:
27f08c3bdfSopenharmony_ci.L2:
28f08c3bdfSopenharmony_ci	<entry-point>
29f08c3bdfSopenharmony_ci	ret.32      "signed char"
30f08c3bdfSopenharmony_ci
31f08c3bdfSopenharmony_ci
32f08c3bdfSopenharmony_citest_uchar:
33f08c3bdfSopenharmony_ci.L4:
34f08c3bdfSopenharmony_ci	<entry-point>
35f08c3bdfSopenharmony_ci	ret.32      "unsigned char"
36f08c3bdfSopenharmony_ci
37f08c3bdfSopenharmony_ci
38f08c3bdfSopenharmony_ci * check-output-end
39f08c3bdfSopenharmony_ci */
40