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