
void main()
main: scope:[main]  from
  [0] phi()
  [1] call lvalue
  to:main::@1
main::@1: scope:[main]  from main
  [2] phi()
  [3] call rvalue
  to:main::@2
main::@2: scope:[main]  from main::@1
  [4] phi()
  [5] call rvaluevar
  to:main::@3
main::@3: scope:[main]  from main::@2
  [6] phi()
  [7] call lvaluevar
  to:main::@return
main::@return: scope:[main]  from main::@3
  [8] return 
  to:@return

void lvalue()
lvalue: scope:[lvalue]  from main
  [9] *lvalue::SCREEN = 1
  [10] *(lvalue::SCREEN+1) = 2
  to:lvalue::@1
lvalue::@1: scope:[lvalue]  from lvalue lvalue::@2
  [11] lvalue::i#2 = phi( lvalue/2, lvalue::@2/lvalue::i#1 )
  [12] if(lvalue::i#2<$a) goto lvalue::@2
  to:lvalue::@return
lvalue::@return: scope:[lvalue]  from lvalue::@1
  [13] return 
  to:@return
lvalue::@2: scope:[lvalue]  from lvalue::@1
  [14] lvalue::SCREEN[lvalue::i#2] = 3
  [15] lvalue::i#1 = ++ lvalue::i#2
  to:lvalue::@1

void rvalue()
rvalue: scope:[rvalue]  from main::@1
  [16] rvalue::b#1 = *(rvalue::SCREEN+1)
  to:rvalue::@1
rvalue::@1: scope:[rvalue]  from rvalue rvalue::@2
  [17] rvalue::b#3 = phi( rvalue/rvalue::b#1, rvalue::@2/rvalue::b#2 )
  [17] rvalue::i#2 = phi( rvalue/2, rvalue::@2/rvalue::i#1 )
  [18] if(rvalue::i#2<$a) goto rvalue::@2
  to:rvalue::@3
rvalue::@3: scope:[rvalue]  from rvalue::@1
  [19] *rvalue::screen2 = rvalue::b#3
  to:rvalue::@return
rvalue::@return: scope:[rvalue]  from rvalue::@3
  [20] return 
  to:@return
rvalue::@2: scope:[rvalue]  from rvalue::@1
  [21] rvalue::b#2 = rvalue::SCREEN[rvalue::i#2]
  [22] rvalue::i#1 = ++ rvalue::i#2
  to:rvalue::@1

void rvaluevar()
rvaluevar: scope:[rvaluevar]  from main::@2
  [23] phi()
  to:rvaluevar::@1
rvaluevar::@1: scope:[rvaluevar]  from rvaluevar rvaluevar::@2
  [24] rvaluevar::b#2 = phi( rvaluevar/0, rvaluevar::@2/rvaluevar::b#1 )
  [24] rvaluevar::screen#2 = phi( rvaluevar/(char *) 1024, rvaluevar::@2/rvaluevar::screen#1 )
  [24] rvaluevar::i#2 = phi( rvaluevar/2, rvaluevar::@2/rvaluevar::i#1 )
  [25] if(rvaluevar::i#2<$a) goto rvaluevar::@2
  to:rvaluevar::@3
rvaluevar::@3: scope:[rvaluevar]  from rvaluevar::@1
  [26] *rvaluevar::screen2 = rvaluevar::b#2
  to:rvaluevar::@return
rvaluevar::@return: scope:[rvaluevar]  from rvaluevar::@3
  [27] return 
  to:@return
rvaluevar::@2: scope:[rvaluevar]  from rvaluevar::@1
  [28] rvaluevar::b#1 = *rvaluevar::screen#2
  [29] rvaluevar::screen#1 = ++ rvaluevar::screen#2
  [30] rvaluevar::i#1 = ++ rvaluevar::i#2
  to:rvaluevar::@1

void lvaluevar()
lvaluevar: scope:[lvaluevar]  from main::@3
  [31] phi()
  to:lvaluevar::@1
lvaluevar::@1: scope:[lvaluevar]  from lvaluevar lvaluevar::@2
  [32] lvaluevar::screen#2 = phi( lvaluevar/(char *) 1024, lvaluevar::@2/lvaluevar::screen#1 )
  [32] lvaluevar::i#2 = phi( lvaluevar/2, lvaluevar::@2/lvaluevar::i#1 )
  [33] if(lvaluevar::i#2<$a) goto lvaluevar::@2
  to:lvaluevar::@return
lvaluevar::@return: scope:[lvaluevar]  from lvaluevar::@1
  [34] return 
  to:@return
lvaluevar::@2: scope:[lvaluevar]  from lvaluevar::@1
  [35] *lvaluevar::screen#2 = lvaluevar::b
  [36] lvaluevar::screen#1 = ++ lvaluevar::screen#2
  [37] lvaluevar::i#1 = ++ lvaluevar::i#2
  to:lvaluevar::@1
