int test(void) { int stored[10]; int sym; int index; sym = stored[index]; return 42; } 1: AST_TYPE_Atom 0 4 [[typeinfo=0]] 6: AST_TAG "test" (c[4].s) [[typeinfo=0]] 10: AST_Scope [138] -1 1 [[typeinfo=0]] 16: AST_TYPE_Atom 0 4 [[typeinfo=0]] 21: AST_TAG "stored" (c[15].s) [[typeinfo=0]] 25: AST_TYPE_Atom 0 4 [[typeinfo=0]] 30: AST_TYPE_ArrayOf [16] [25] 0 -1 -1 [[typeinfo=0]] 38: AST_Declare [21] [30] [[typeinfo=0]] 43: AST_TYPE_Atom 0 4 [[typeinfo=0]] 48: AST_TAG "sym" (c[25].s) [[typeinfo=0]] 52: AST_Declare [48] [43] [[typeinfo=0]] 57: AST_SEQ [52] [-1] [[typeinfo=0]] 62: AST_TYPE_Atom 0 4 [[typeinfo=0]] 67: AST_TAG "index" (c[32].s) [[typeinfo=0]] 71: AST_Declare [67] [62] [[typeinfo=0]] 76: AST_SEQ [71] [-1] [[typeinfo=0]] 81: AST_SEQ [76] [-1] [[typeinfo=0]] 86: AST_SEQ [57] [81] [[typeinfo=0]] 91: AST_SEQ [38] [86] [[typeinfo=0]] 96: AST_TAG "sym" (c[38].s) [[typeinfo=0]] 100: AST_AssignTo [96] [113] [[typeinfo=0]] 105: AST_TAG "stored" (c[42].s) [[typeinfo=0]] 109: AST_TAG "index" (c[44].s) [[typeinfo=0]] 113: AST_Idx [105] [109] [[typeinfo=0]] 118: AST_Const 53 42 [[typeinfo=0]] 123: AST_ReturnResult [118] -1 [[typeinfo=0]] 128: AST_SEQ [100] [123] [[typeinfo=0]] 133: AST_SEQ [91] [128] [[typeinfo=0]] 138: AST_SEQ [-1] [133] [[typeinfo=0]] 143: AST_DefProc 1 [6] [-1] [10] [[typeinfo=0]] 150: AST_SEQ [143] [-1] [[typeinfo=0]] 155: AST_Scope [150] -1 0 [[typeinfo=0]] ----------------- ------------- 155: AST_Scope [150] -1 0 [[typeinfo=-1]] 150: AST_SEQ [143] [-1] [[typeinfo=-1]] 143: AST_DefProc 1 [6] [-1] [10] [[typeinfo=-1]] 6: AST_TAG "test" [[typeinfo=-1]] 10: AST_Scope [138] 155 1 [[typeinfo=-1]] 138: AST_SEQ [-1] [133] [[typeinfo=-1]] 133: AST_SEQ [91] [128] [[typeinfo=-1]] 91: AST_SEQ [38] [86] [[typeinfo=-1]] 38: AST_Declare [21] [30] [[typeinfo=-1]] 21: AST_TAG "stored" [[typeinfo=-1]] 30: AST_TYPE_ArrayOf [16] [25] 0 -1 -1 [[typeinfo=-1]] 16: AST_TYPE_Atom 25: AST_TYPE_Atom 86: AST_SEQ [57] [81] [[typeinfo=-1]] 57: AST_SEQ [52] [-1] [[typeinfo=-1]] 52: AST_Declare [48] [43] [[typeinfo=-1]] 48: AST_TAG "sym" [[typeinfo=-1]] 43: AST_TYPE_Atom 81: AST_SEQ [76] [-1] [[typeinfo=-1]] 76: AST_SEQ [71] [-1] [[typeinfo=-1]] 71: AST_Declare [67] [62] [[typeinfo=-1]] 67: AST_TAG "index" [[typeinfo=-1]] 62: AST_TYPE_Atom 128: AST_SEQ [100] [123] [[typeinfo=-1]] 100: AST_AssignTo [96] [113] [[typeinfo=43]] 96: AST_TAG "sym" [[typeinfo=43]] 113: AST_Idx [105] [109] [[typeinfo=16]] 105: AST_TAG "stored" [[typeinfo=30]] 109: AST_TAG "index" [[typeinfo=62]] 123: AST_ReturnResult [118] -1 [[typeinfo=-1]] 118: AST_Const 42 PROC test ; AST_DefProc PUSH &stored ; push address of zeroth element of array PUSH index ; [[typeinfo=1080]] INDEX 4 ; (by size of object type 1080) POP sym ; [[typeinfo=1080]] PUSH #42 ; AST_Const RET 1 ; Return a result RET 0 ; Return by dropping through end of proc