
void main()
main: scope:[main]  from
  [0] phi()
  [1] call print
  to:main::@1
main::@1: scope:[main]  from main
  [2] phi()
  [3] call print
  to:main::@2
main::@2: scope:[main]  from main::@1
  [4] phi()
  [5] call print1
  to:main::@return
main::@return: scope:[main]  from main::@2
  [6] return 
  to:@return

void print(char *msg)
print: scope:[print]  from main main::@1 print1 print1::@1
  [7] idx#27 = phi( main/0, main::@1/idx#19, print1/idx#19, print1::@1/idx#19 )
  [7] print::msg#7 = phi( main/msg, main::@1/main::msg1, print1/print1::msg, print1::@1/msg )
  to:print::@1
print::@1: scope:[print]  from print print::@2
  [8] idx#19 = phi( print/idx#27, print::@2/idx#7 )
  [8] print::msg#5 = phi( print/print::msg#7, print::@2/print::msg#4 )
  [9] if(0!=*print::msg#5) goto print::@2
  to:print::@return
print::@return: scope:[print]  from print::@1
  [10] return 
  to:@return
print::@2: scope:[print]  from print::@1
  [11] SCREEN[idx#19] = *print::msg#5
  [12] idx#7 = ++ idx#19
  [13] print::msg#4 = ++ print::msg#5
  to:print::@1

void print1()
print1: scope:[print1]  from main::@2
  [14] phi()
  [15] call print
  to:print1::@1
print1::@1: scope:[print1]  from print1
  [16] phi()
  [17] call print
  to:print1::@return
print1::@return: scope:[print1]  from print1::@1
  [18] return 
  to:@return
