1f08c3bdfSopenharmony_citypedef int (*fun_t)(void*); 2f08c3bdfSopenharmony_ci 3f08c3bdfSopenharmony_ciint foo(void *a, void *fun) 4f08c3bdfSopenharmony_ci{ 5f08c3bdfSopenharmony_ci return ((fun_t)fun)(a); 6f08c3bdfSopenharmony_ci} 7f08c3bdfSopenharmony_ci 8f08c3bdfSopenharmony_ciint bar(void *a, void *fun) 9f08c3bdfSopenharmony_ci{ 10f08c3bdfSopenharmony_ci return ((int (*)(void *))fun)(a); 11f08c3bdfSopenharmony_ci} 12f08c3bdfSopenharmony_ci 13f08c3bdfSopenharmony_ciint qux(void *a, void *fun) 14f08c3bdfSopenharmony_ci{ 15f08c3bdfSopenharmony_ci return (*(fun_t)fun)(a); 16f08c3bdfSopenharmony_ci} 17f08c3bdfSopenharmony_ci 18f08c3bdfSopenharmony_ciint quz(void *a, void *fun) 19f08c3bdfSopenharmony_ci{ 20f08c3bdfSopenharmony_ci return (*(int (*)(void *))fun)(a); 21f08c3bdfSopenharmony_ci} 22f08c3bdfSopenharmony_ci 23f08c3bdfSopenharmony_ci/* 24f08c3bdfSopenharmony_ci * check-name: call via casted function pointer 25f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file 26f08c3bdfSopenharmony_ci * 27f08c3bdfSopenharmony_ci * check-output-ignore 28f08c3bdfSopenharmony_ci * check-output-excludes: load 29f08c3bdfSopenharmony_ci * check-output-pattern(4): ptrcast\\..* %arg2 30f08c3bdfSopenharmony_ci * check-output-pattern(4): call\\..* %arg1 31f08c3bdfSopenharmony_ci */ 32