1 extern int fun(int); 2 3 typedef int (*fun_t)(int); 4 5 fun_t fa(void) { return &fun; } 6 fun_t f0(void) { return fun; } 7 fun_t f1(void) { return *fun; } 8 9 /* 10 * check-name: degen-function 11 * check-command: test-linearize -m64 -Wno-decl -fdump-ir=linearize $file 12 * check-assert: sizeof(void *) == 8 13 * 14 * check-output-start 15 fa: 16 .L0: 17 <entry-point> 18 symaddr.64 %r1 <- fun 19 phisrc.64 %phi1(return) <- %r1 20 br .L1 21 22 .L1: 23 phi.64 %r2 <- %phi1(return) 24 ret.64 %r2 25 26 27 f0: 28 .L2: 29 <entry-point> 30 symaddr.64 %r3 <- fun 31 phisrc.64 %phi2(return) <- %r3 32 br .L3 33 34 .L3: 35 phi.64 %r4 <- %phi2(return) 36 ret.64 %r4 37 38 39 f1: 40 .L4: 41 <entry-point> 42 symaddr.64 %r5 <- fun 43 phisrc.64 %phi3(return) <- %r5 44 br .L5 45 46 .L5: 47 phi.64 %r6 <- %phi3(return) 48 ret.64 %r6 49 50 51 * check-output-end 52 */ 53