1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-21 17:24:39 +00:00
kickc/src/test/ref/ptrtest.cfg
2019-05-30 22:29:07 +02:00

98 lines
3.8 KiB
INI

@begin: scope:[] from
[0] phi()
to:@1
@1: scope:[] from @begin
[1] phi()
[2] call main
to:@end
@end: scope:[] from @1
[3] phi()
main: scope:[main] from @1
[4] phi()
[5] call lvalue
to:main::@1
main::@1: scope:[main] from main
[6] phi()
[7] call rvalue
to:main::@2
main::@2: scope:[main] from main::@1
[8] phi()
[9] call rvaluevar
to:main::@3
main::@3: scope:[main] from main::@2
[10] phi()
[11] call lvaluevar
to:main::@return
main::@return: scope:[main] from main::@3
[12] return
to:@return
lvaluevar: scope:[lvaluevar] from main::@3
[13] phi()
to:lvaluevar::@1
lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2
[14] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/(byte*) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 )
[14] (byte) lvaluevar::i#2 ← phi( lvaluevar/(byte) 2 lvaluevar::@2/(byte) lvaluevar::i#1 )
[15] if((byte) lvaluevar::i#2<(byte) $a) goto lvaluevar::@2
to:lvaluevar::@return
lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
[16] return
to:@return
lvaluevar::@2: scope:[lvaluevar] from lvaluevar::@1
[17] *((byte*) lvaluevar::screen#2) ← (const byte) lvaluevar::b#0
[18] (byte*) lvaluevar::screen#1 ← ++ (byte*) lvaluevar::screen#2
[19] (byte) lvaluevar::i#1 ← ++ (byte) lvaluevar::i#2
to:lvaluevar::@1
rvaluevar: scope:[rvaluevar] from main::@2
[20] phi()
to:rvaluevar::@1
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
[21] (byte) rvaluevar::b#2 ← phi( rvaluevar/(byte) 0 rvaluevar::@2/(byte) rvaluevar::b#1 )
[21] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/(byte*) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 )
[21] (byte) rvaluevar::i#2 ← phi( rvaluevar/(byte) 2 rvaluevar::@2/(byte) rvaluevar::i#1 )
[22] if((byte) rvaluevar::i#2<(byte) $a) goto rvaluevar::@2
to:rvaluevar::@3
rvaluevar::@3: scope:[rvaluevar] from rvaluevar::@1
[23] *((const byte*) rvaluevar::screen2#0) ← (byte) rvaluevar::b#2
to:rvaluevar::@return
rvaluevar::@return: scope:[rvaluevar] from rvaluevar::@3
[24] return
to:@return
rvaluevar::@2: scope:[rvaluevar] from rvaluevar::@1
[25] (byte) rvaluevar::b#1 ← *((byte*) rvaluevar::screen#2)
[26] (byte*) rvaluevar::screen#1 ← ++ (byte*) rvaluevar::screen#2
[27] (byte) rvaluevar::i#1 ← ++ (byte) rvaluevar::i#2
to:rvaluevar::@1
rvalue: scope:[rvalue] from main::@1
[28] (byte) rvalue::b#1 ← *((const byte[$400]) rvalue::SCREEN#0+(byte) 1)
to:rvalue::@1
rvalue::@1: scope:[rvalue] from rvalue rvalue::@2
[29] (byte) rvalue::b#3 ← phi( rvalue/(byte) rvalue::b#1 rvalue::@2/(byte) rvalue::b#2 )
[29] (byte) rvalue::i#2 ← phi( rvalue/(byte) 2 rvalue::@2/(byte) rvalue::i#1 )
[30] if((byte) rvalue::i#2<(byte) $a) goto rvalue::@2
to:rvalue::@3
rvalue::@3: scope:[rvalue] from rvalue::@1
[31] *((const byte*) rvalue::screen2#0) ← (byte) rvalue::b#3
to:rvalue::@return
rvalue::@return: scope:[rvalue] from rvalue::@3
[32] return
to:@return
rvalue::@2: scope:[rvalue] from rvalue::@1
[33] (byte) rvalue::b#2 ← *((const byte[$400]) rvalue::SCREEN#0 + (byte) rvalue::i#2)
[34] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2
to:rvalue::@1
lvalue: scope:[lvalue] from main
[35] *((const byte[$400]) lvalue::SCREEN#0) ← (byte) 1
[36] *((const byte[$400]) lvalue::SCREEN#0+(byte) 1) ← (byte) 2
to:lvalue::@1
lvalue::@1: scope:[lvalue] from lvalue lvalue::@2
[37] (byte) lvalue::i#2 ← phi( lvalue/(byte) 2 lvalue::@2/(byte) lvalue::i#1 )
[38] if((byte) lvalue::i#2<(byte) $a) goto lvalue::@2
to:lvalue::@return
lvalue::@return: scope:[lvalue] from lvalue::@1
[39] return
to:@return
lvalue::@2: scope:[lvalue] from lvalue::@1
[40] *((const byte[$400]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte) 3
[41] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2
to:lvalue::@1