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  */