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