1 extern int fun(int);
2 
3 typedef int (*fun_t)(int);
4 
fa(void)5 fun_t fa(void) { return &fun; }
f0(void)6 fun_t f0(void) { return  fun; }
f1(void)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