diff --git a/include/ir/IR.h b/include/ir/IR.h index d252ab3..20a2e64 100644 --- a/include/ir/IR.h +++ b/include/ir/IR.h @@ -320,6 +320,12 @@ enum class Opcode { Div, Mod, And, Or, Not, GEP, + FAdd, FSub, FMul, FDiv, + FCmp, + SIToFP, // 整数转浮点 + FPToSI, // 浮点转整数 + FPExt, // 浮点扩展 + FPTrunc, // 浮点截断 }; // ZExt 和 Trunc 是零扩展和截断指令,SysY 的 int (i32) vs LLVM IR 的比较结果 (i1)。 @@ -569,6 +575,42 @@ class BranchInst : public Instruction { Predicate pred_; }; +class FcmpInst : public Instruction { + public: + enum class Predicate { + FALSE, // Always false + OEQ, // Ordered and equal + OGT, // Ordered and greater than + OGE, // Ordered and greater than or equal + OLT, // Ordered and less than + OLE, // Ordered and less than or equal + ONE, // Ordered and not equal + ORD, // Ordered (no nans) + UNO, // Unordered (isnan(x) || isnan(y)) + UEQ, // Unordered or equal + UGT, // Unordered or greater than + UGE, // Unordered or greater than or equal + ULT, // Unordered or less than + ULE, // Unordered or less than or equal + UNE, // Unordered or not equal + TRUE // Always true + }; + + FcmpInst(Predicate pred, Value* lhs, Value* rhs, + std::shared_ptr i1_ty, std::string name) + : Instruction(Opcode::FCmp, i1_ty, name), pred_(pred) { + AddOperand(lhs); + AddOperand(rhs); + } + + Predicate GetPredicate() const { return pred_; } + Value* GetLhs() const { return GetOperand(0); } + Value* GetRhs() const { return GetOperand(1); } + + private: + Predicate pred_; +}; + // ZExtInst - 零扩展指令 class ZExtInst : public Instruction { public: @@ -728,6 +770,32 @@ class Module { std::vector> globals_; }; +// SIToFP - 整数转浮点 +class SIToFPInst : public Instruction { + public: + SIToFPInst(Value* value, std::shared_ptr target_ty, std::string name = "") + : Instruction(Opcode::SIToFP, target_ty, name) { + AddOperand(value); + } + + Value* GetValue() const { + return GetOperand(0); + } +}; + +// FPToSI - 浮点转整数 +class FPToSIInst : public Instruction { + public: + FPToSIInst(Value* value, std::shared_ptr target_ty, std::string name = "") + : Instruction(Opcode::FPToSI, target_ty, name) { + AddOperand(value); + } + + Value* GetValue() const { + return GetOperand(0); + } +}; + class IRBuilder { public: IRBuilder(Context& ctx, BasicBlock* bb); @@ -791,6 +859,25 @@ class IRBuilder { GEPInst* CreateGEP(Value* base, const std::vector& indices, const std::string& name); + // 浮点运算 + BinaryInst* CreateFAdd(Value* lhs, Value* rhs, const std::string& name); + BinaryInst* CreateFSub(Value* lhs, Value* rhs, const std::string& name); + BinaryInst* CreateFMul(Value* lhs, Value* rhs, const std::string& name); + BinaryInst* CreateFDiv(Value* lhs, Value* rhs, const std::string& name); + + // 浮点比较 + FcmpInst* CreateFCmpOEQ(Value* lhs, Value* rhs, const std::string& name); + FcmpInst* CreateFCmpONE(Value* lhs, Value* rhs, const std::string& name); + FcmpInst* CreateFCmpOLT(Value* lhs, Value* rhs, const std::string& name); + FcmpInst* CreateFCmpOLE(Value* lhs, Value* rhs, const std::string& name); + FcmpInst* CreateFCmpOGT(Value* lhs, Value* rhs, const std::string& name); + FcmpInst* CreateFCmpOGE(Value* lhs, Value* rhs, const std::string& name); + + // 类型转换 + SIToFPInst* CreateSIToFP(Value* value, std::shared_ptr target_ty, + const std::string& name = ""); + FPToSIInst* CreateFPToSI(Value* value, std::shared_ptr target_ty, + const std::string& name = ""); private: Context& ctx_; BasicBlock* insert_block_; diff --git a/result.txt b/result.txt index d94ad8d..893ee2e 100644 --- a/result.txt +++ b/result.txt @@ -47,23 +47,23 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] 初始化值数量: 8 [DEBUG] 期望元素数量: 8 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: a, ctx: 0x55cf3c928b00 +保存常量定义上下文: a, ctx: 0x55aa3d9d1b00 [DEBUG] 数组常量,不存储单个常量值 -SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x55cf3c928b00 +SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x55aa3d9d1b00 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found a in scope level 3, kind=3, const_def_ctx=0x55cf3c928b00 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55cf3c928b00 +SymbolTable::lookup: found a in scope level 3, kind=3, const_def_ctx=0x55aa3d9d1b00 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55aa3d9d1b00 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: N base_type: int is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 3 [DEBUG] visitPrimaryExp: 3 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: N, ctx: 0x55cf3c9332c0 -SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x55cf3c9332c0 +保存常量定义上下文: N, ctx: 0x55aa3d9dc2c0 +SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x55aa3d9dc2c0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55cf3c9332c0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55cf3c9332c0 +SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55aa3d9dc2c0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55aa3d9dc2c0 [DEBUG] 常量符号添加完成 [DEBUG] CheckVarDef: b base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: 4 @@ -120,14 +120,14 @@ SymbolTable::addSymbol: stored c with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: d base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55cf3c9332c0 +SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55aa3d9dc2c0 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cf3c9332c0 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55aa3d9dc2c0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 -SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55cf3c9332c0 +SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55aa3d9dc2c0 [DEBUG] dim[0] = 4 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -152,10 +152,10 @@ SymbolTable::lookup: found N in scope level 3, kind=3, const_def_ctx=0x55cf3c933 [DEBUG] CheckExp: a[3][0] [DEBUG] visitUnaryExp: a[3][0] [DEBUG] visitPrimaryExp: a[3][0] -SymbolTable::lookup: found a in scope level 3, kind=3, const_def_ctx=0x55cf3c928b00 +SymbolTable::lookup: found a in scope level 3, kind=3, const_def_ctx=0x55aa3d9d1b00 CheckLValue: found sym->name = a, sym->kind = 3 绑定常量: a -> ConstDefContext -CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cf3c928b00 +CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55aa3d9d1b00 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: 3 [DEBUG] visitUnaryExp: 3 @@ -190,7 +190,7 @@ SymbolTable::addSymbol: stored d with kind=0, const_def_ctx=0 SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55cf3c939a40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9e2a40, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: 2 [DEBUG] visitUnaryExp: 2 @@ -205,7 +205,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found c in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = c, sym->kind = 0 绑定变量: c -> VarDefContext -CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x55cf3c935f60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9def60, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: 2 [DEBUG] visitUnaryExp: 2 @@ -244,7 +244,7 @@ SymbolTable::addSymbol: stored e with kind=0, const_def_ctx=0 SymbolTable::lookup: found e in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = e, sym->kind = 0 绑定变量: e -> VarDefContext -CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55cf3c942470, sym->const_def_ctx: 0 +CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9eb470, sym->const_def_ctx: 0 dim_count: 3, subscript_count: 3 [DEBUG] CheckExp: 3 [DEBUG] visitUnaryExp: 3 @@ -261,7 +261,7 @@ dim_count: 3, subscript_count: 3 SymbolTable::lookup: found e in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = e, sym->kind = 0 绑定变量: e -> VarDefContext -CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55cf3c942470, sym->const_def_ctx: 0 +CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9eb470, sym->const_def_ctx: 0 dim_count: 3, subscript_count: 3 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -278,7 +278,7 @@ dim_count: 3, subscript_count: 3 SymbolTable::lookup: found e in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = e, sym->kind = 0 绑定变量: e -> VarDefContext -CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55cf3c942470, sym->const_def_ctx: 0 +CheckLValue 绑定变量: e, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9eb470, sym->const_def_ctx: 0 dim_count: 3, subscript_count: 3 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -295,7 +295,7 @@ dim_count: 3, subscript_count: 3 SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55cf3c939a40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55aa3d9e2a40, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: 3 [DEBUG] visitUnaryExp: 3 @@ -311,49 +311,46 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] 运行时库函数声明完成 [DEBUG IRGEN] visitCompUnit [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x55aa3da01cd0 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {constinta[4][2]={{1,2},{3,4},{},7};constintN=3;intb[4][2]={};intc[4][2]={1,2,3,4,5,6,7,8};intd[N+1][2]={1,2,{3},{5},a[3][0],8};inte[4][2][1]={{d[2][1],{c[2][1]}},{3,4},{5,6},{7,8}};returne[3][1][0]+e[0][0][0]+e[0][1][0]+d[3][0];} [DEBUG IRGEN] visitBlockItem: constinta[4][2]={{1,2},{3,4},{},7}; [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant a -[DEBUG] visitConstDef: array constant a [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG IRGEN] visitAddExp: 1 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x55cf3c959190 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55aa3da02190 [DEBUG IRGEN] visitAddExp: 2 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x55cf3c959210 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55aa3da02210 [DEBUG IRGEN] visitAddExp: 3 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x55cf3c959360 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360 [DEBUG IRGEN] visitAddExp: 4 [DEBUG IRGEN] visitMulExp: 4 [DEBUG IRGEN] visitPrimaryExp: 4 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 4 created as 0x55cf3c9593c0 +[DEBUG] visitPrimaryExp: constant int 4 created as 0x55aa3da023c0 [DEBUG IRGEN] visitAddExp: 7 [DEBUG IRGEN] visitMulExp: 7 [DEBUG IRGEN] visitPrimaryExp: 7 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 7 created as 0x55cf3c959460 +[DEBUG] visitPrimaryExp: constant int 7 created as 0x55aa3da02460 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: constintN=3; [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant N -[DEBUG] visitConstDef: scalar constant N [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant N = 3 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: intb[4][2]={}; @@ -364,18 +361,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部数组变量 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] HandleLocalVariable: 数组总大小: 8 -[DEBUG] HandleLocalVariable: 为数组元素分配存储空间 -[DEBUG] HandleLocalVariable: 处理数组初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 空初始化列表 -[DEBUG] HandleLocalVariable: 获取到初始化值列表, 大小: 0 -[DEBUG] HandleLocalVariable: 存储数组引用 -[DEBUG] HandleLocalVariable: 创建局部数组 b,维度 4×2,总大小 8 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: intc[4][2]={1,2,3,4,5,6,7,8}; @@ -386,12 +375,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 c -[DEBUG] HandleLocalVariable: 处理局部数组变量 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] HandleLocalVariable: 数组总大小: 8 -[DEBUG] HandleLocalVariable: 为数组元素分配存储空间 -[DEBUG] HandleLocalVariable: 处理数组初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理聚合初始化 [DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值 @@ -402,8 +387,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x55cf3c959190 -[DEBUG] EvalExpr: success, result = 0x55cf3c959190 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55aa3da02190 +[DEBUG] EvalExpr: success, result = 0x55aa3da02190 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -412,8 +397,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x55cf3c959210 -[DEBUG] EvalExpr: success, result = 0x55cf3c959210 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55aa3da02210 +[DEBUG] EvalExpr: success, result = 0x55aa3da02210 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -422,8 +407,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x55cf3c959360 -[DEBUG] EvalExpr: success, result = 0x55cf3c959360 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360 +[DEBUG] EvalExpr: success, result = 0x55aa3da02360 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -432,8 +417,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 4 [DEBUG IRGEN] visitPrimaryExp: 4 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 4 created as 0x55cf3c9593c0 -[DEBUG] EvalExpr: success, result = 0x55cf3c9593c0 +[DEBUG] visitPrimaryExp: constant int 4 created as 0x55aa3da023c0 +[DEBUG] EvalExpr: success, result = 0x55aa3da023c0 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -442,8 +427,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 5 [DEBUG IRGEN] visitPrimaryExp: 5 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 5 created as 0x55cf3c95a700 -[DEBUG] EvalExpr: success, result = 0x55cf3c95a700 +[DEBUG] visitPrimaryExp: constant int 5 created as 0x55aa3da036a0 +[DEBUG] EvalExpr: success, result = 0x55aa3da036a0 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -452,8 +437,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 6 [DEBUG IRGEN] visitPrimaryExp: 6 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 6 created as 0x55cf3c95a7b0 -[DEBUG] EvalExpr: success, result = 0x55cf3c95a7b0 +[DEBUG] visitPrimaryExp: constant int 6 created as 0x55aa3da03750 +[DEBUG] EvalExpr: success, result = 0x55aa3da03750 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -462,8 +447,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 7 [DEBUG IRGEN] visitPrimaryExp: 7 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 7 created as 0x55cf3c959460 -[DEBUG] EvalExpr: success, result = 0x55cf3c959460 +[DEBUG] visitPrimaryExp: constant int 7 created as 0x55aa3da02460 +[DEBUG] EvalExpr: success, result = 0x55aa3da02460 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -472,14 +457,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 8 [DEBUG IRGEN] visitPrimaryExp: 8 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 8 created as 0x55cf3c95a810 -[DEBUG] EvalExpr: success, result = 0x55cf3c95a810 +[DEBUG] visitPrimaryExp: constant int 8 created as 0x55aa3da037b0 +[DEBUG] EvalExpr: success, result = 0x55aa3da037b0 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] ProcessNestedInitVals: 共获取 8 个初始化值 -[DEBUG] HandleLocalVariable: 获取到初始化值列表, 大小: 8 -[DEBUG] HandleLocalVariable: 存储数组引用 -[DEBUG] HandleLocalVariable: 创建局部数组 c,维度 4×2,总大小 8 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: intd[N+1][2]={1,2,{3},{5},a[3][0],8}; @@ -490,12 +471,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 d -[DEBUG] HandleLocalVariable: 处理局部数组变量 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] HandleLocalVariable: 数组总大小: 8 -[DEBUG] HandleLocalVariable: 为数组元素分配存储空间 -[DEBUG] HandleLocalVariable: 处理数组初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理聚合初始化 [DEBUG] ProcessNestedInitVals: 开始处理嵌套初始化值 @@ -506,8 +483,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x55cf3c959190 -[DEBUG] EvalExpr: success, result = 0x55cf3c959190 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55aa3da02190 +[DEBUG] EvalExpr: success, result = 0x55aa3da02190 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 @@ -516,8 +493,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x55cf3c959210 -[DEBUG] EvalExpr: success, result = 0x55cf3c959210 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55aa3da02210 +[DEBUG] EvalExpr: success, result = 0x55aa3da02210 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理聚合初始化 @@ -529,8 +506,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x55cf3c959360 -[DEBUG] EvalExpr: success, result = 0x55cf3c959360 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360 +[DEBUG] EvalExpr: success, result = 0x55aa3da02360 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] ProcessNestedInitVals: 共获取 1 个初始化值 [DEBUG] ProcessNestedInitVals: 获取到嵌套值列表, 大小: 1 @@ -544,8 +521,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 5 [DEBUG IRGEN] visitPrimaryExp: 5 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 5 created as 0x55cf3c95a700 -[DEBUG] EvalExpr: success, result = 0x55cf3c95a700 +[DEBUG] visitPrimaryExp: constant int 5 created as 0x55aa3da036a0 +[DEBUG] EvalExpr: success, result = 0x55aa3da036a0 [DEBUG] ProcessNestedInitVals: 获取到单个值 [DEBUG] ProcessNestedInitVals: 共获取 1 个初始化值 [DEBUG] ProcessNestedInitVals: 获取到嵌套值列表, 大小: 1 @@ -563,16 +540,16 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x55cf3c959360 -[DEBUG] EvalExpr: success, result = 0x55cf3c959360 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x55aa3da02360 +[DEBUG] EvalExpr: success, result = 0x55aa3da02360 [DEBUG IRGEN] EvalExpr: 0 [DEBUG IRGEN] visitAddExp: 0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x55cf3c9594c0 -[ERROR] Exception in EvalExpr: [ir] 不支持的指针类型 -[error] [ir] 不支持的指针类型 +[DEBUG] EvalExpr: success, result = 0x55aa3da024c0 +[ERROR] Exception in EvalExpr: [ir] LoadInst 当前只支持从 i32* 加载 +[error] [ir] LoadInst 当前只支持从 i32* 加载 ========== test/test_case/functional/09_func_defn.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -630,7 +607,7 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x558432321720, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11b720, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 10 [DEBUG] visitUnaryExp: 10 @@ -639,7 +616,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x558432324180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11e180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: func(a) [DEBUG] visitUnaryExp: func(a) @@ -653,7 +630,7 @@ SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x558432321720, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11b720, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] visitStmt: Return ExpStmt @@ -666,7 +643,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x558432324180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55ea0f11e180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 main has_return: 1 return_type_is_void: 0 @@ -681,16 +658,15 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 a -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: a -[DEBUG] HandleGlobalVariable: 无初始化值 -[DEBUG] HandleGlobalVariable: 使用默认初始化值0 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 a -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG IRGEN] visitFuncDef: func +[DEBUG] visitFuncDef: 创建函数 func,返回类型: int,参数数量: 1 +[DEBUG] visitFuncDef: 函数对象地址: 0x55ea0f131b40 +[DEBUG] visitFuncDef: 为函数 func 添加参数 p,类型: int32 +[DEBUG] visitFuncDef: 参数 p 处理完成 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {p=p-1;returnp;} [DEBUG IRGEN] visitBlockItem: p=p-1; [DEBUG IRGEN] visitStmt: p=p-1; @@ -706,12 +682,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x558432337f00 -[DEBUG] visitAddExp: left=0x558432337e40, right=0x558432337f00 -[DEBUG] EvalExpr: success, result = 0x558432337f60 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55ea0f131f00 +[DEBUG] visitAddExp: left=0x55ea0f131e40, type=int, right=0x55ea0f131f00, type=int +[DEBUG] EvalExpr: success, result = 0x55ea0f131f60 [DEBUG] HandleAssignStmt: assigning to p -[DEBUG] HandleAssignStmt: found in param_map_ for p, ptr = 0x558432335d40 -[DEBUG] HandleAssignStmt: scalar assignment to p, ptr = 0x558432335d40, rhs = 0x558432337f60 +[DEBUG] HandleAssignStmt: found in param_map_ for p, ptr = 0x55ea0f12fd40 +[DEBUG] HandleAssignStmt: scalar assignment to p, ptr = 0x55ea0f12fd40, rhs = 0x55ea0f131f60 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -722,7 +698,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: returnp; [DEBUG IRGEN] visitStmt: returnp; [DEBUG IRGEN] HandleReturnStmt: returnp; -[DEBUG IRGEN] HandleReturnStmt eval exp: p [DEBUG IRGEN] EvalExpr: p [DEBUG IRGEN] visitAddExp: p [DEBUG IRGEN] visitMulExp: p @@ -730,8 +705,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: p -[DEBUG] EvalExpr: success, result = 0x558432338150 +[DEBUG] EvalExpr: success, result = 0x55ea0f132150 +[DEBUG] visitFuncDef: 函数 func 生成完成 [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x55ea0f132290 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {intb;a=10;b=func(a);returnb;} [DEBUG IRGEN] visitBlockItem: intb; [DEBUG] visitDecl: 开始处理声明 @@ -741,11 +720,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 b,初始值 0x5584323379e0 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: a=10; @@ -756,11 +730,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x558432338590 -[DEBUG] EvalExpr: success, result = 0x558432338590 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x55ea0f132590 +[DEBUG] EvalExpr: success, result = 0x55ea0f132590 [DEBUG] HandleAssignStmt: assigning to a -[DEBUG] HandleAssignStmt: found in global_map_ for a, ptr = 0x558432337930 -[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x558432337930, rhs = 0x558432338590 +[DEBUG] HandleAssignStmt: found in global_map_ for a, ptr = 0x55ea0f131930 +[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x55ea0f131930, rhs = 0x55ea0f132590 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -782,13 +756,13 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a -[DEBUG] EvalExpr: success, result = 0x5584323386b0 +[DEBUG] EvalExpr: success, result = 0x55ea0f1326b0 [DEBUG IRGEN] visitCallExp: 收集到 1 个参数 -[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x558432338770 -[DEBUG] EvalExpr: success, result = 0x558432338770 +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x55ea0f132770 +[DEBUG] EvalExpr: success, result = 0x55ea0f132770 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5584323383f0 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5584323383f0, rhs = 0x558432338770 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55ea0f1323f0 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55ea0f1323f0, rhs = 0x55ea0f132770 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -799,7 +773,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: returnb; [DEBUG IRGEN] visitStmt: returnb; [DEBUG IRGEN] HandleReturnStmt: returnb; -[DEBUG IRGEN] HandleReturnStmt eval exp: b [DEBUG IRGEN] EvalExpr: b [DEBUG IRGEN] visitAddExp: b [DEBUG IRGEN] visitMulExp: b @@ -807,7 +780,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] EvalExpr: success, result = 0x558432338980 +[DEBUG] EvalExpr: success, result = 0x55ea0f132980 +[DEBUG] visitFuncDef: 函数 main 生成完成 @a = global i32 0 define i32 @getint() { entry: @@ -898,7 +872,7 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55bc2cd2da60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x558443521a60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 10 [DEBUG] visitUnaryExp: 10 @@ -907,7 +881,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55bc2cd2e230, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x558443522230, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: -1 [DEBUG] visitUnaryExp: -1 @@ -923,14 +897,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55bc2cd2da60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x558443521a60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55bc2cd2e230, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x558443522230, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 main has_return: 1 return_type_is_void: 0 @@ -939,6 +913,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] 运行时库函数声明完成 [DEBUG IRGEN] visitCompUnit [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x558443533370 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {inta,b;a=10;b=-1;returna+b;} [DEBUG IRGEN] visitBlockItem: inta,b; [DEBUG] visitDecl: 开始处理声明 @@ -948,21 +925,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 a -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 a,初始值 0x55bc2cd35b10 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: b [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 b,初始值 0x55bc2cd35b10 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: a=10; @@ -973,11 +940,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x55bc2cd3c380 -[DEBUG] EvalExpr: success, result = 0x55bc2cd3c380 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x558443530380 +[DEBUG] EvalExpr: success, result = 0x558443530380 [DEBUG] HandleAssignStmt: assigning to a -[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x55bc2ccf8a30 -[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x55bc2ccf8a30, rhs = 0x55bc2cd3c380 +[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5584434eca30 +[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5584434eca30, rhs = 0x558443530380 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -993,11 +960,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: -1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x55bc2cd3b1a0 -[DEBUG] EvalExpr: success, result = 0x55bc2cd3f980 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55844352f1a0 +[DEBUG] EvalExpr: success, result = 0x558443533980 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55bc2cd3f690 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55bc2cd3f690, rhs = 0x55bc2cd3f980 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x558443533690 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x558443533690, rhs = 0x558443533980 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -1008,7 +975,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: returna+b; [DEBUG IRGEN] visitStmt: returna+b; [DEBUG IRGEN] HandleReturnStmt: returna+b; -[DEBUG IRGEN] HandleReturnStmt eval exp: a+b [DEBUG IRGEN] EvalExpr: a+b [DEBUG IRGEN] visitAddExp: a+b [DEBUG IRGEN] visitAddExp: a @@ -1022,8 +988,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x55bc2cd3fb00, right=0x55bc2cd3fbf0 -[DEBUG] EvalExpr: success, result = 0x55bc2cd3fd70 +[DEBUG] visitAddExp: left=0x558443533b00, type=int, right=0x558443533bf0, type=int +[DEBUG] EvalExpr: success, result = 0x558443533d70 +[DEBUG] visitFuncDef: 函数 main 生成完成 define i32 @getint() { entry: } @@ -1100,11 +1067,11 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: 10 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: a, ctx: 0x55df262785d0 -SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x55df262785d0 +保存常量定义上下文: a, ctx: 0x55c7457585d0 +SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x55c7457585d0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found a in scope level 1, kind=3, const_def_ctx=0x55df262785d0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55df262785d0 +SymbolTable::lookup: found a in scope level 1, kind=3, const_def_ctx=0x55c7457585d0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c7457585d0 [DEBUG] 常量符号添加完成 [DEBUG] 进入函数: main 返回类型: int [DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0 @@ -1114,7 +1081,7 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55df2627f9e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55c74575f9e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 2 [DEBUG] visitUnaryExp: 2 @@ -1129,14 +1096,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55df2627f9e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55c74575f9e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a -SymbolTable::lookup: found a in scope level 1, kind=3, const_def_ctx=0x55df262785d0 +SymbolTable::lookup: found a in scope level 1, kind=3, const_def_ctx=0x55c7457585d0 CheckLValue: found sym->name = a, sym->kind = 3 绑定常量: a -> ConstDefContext -CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55df262785d0 +CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c7457585d0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 main has_return: 1 return_type_is_void: 0 @@ -1146,13 +1113,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitCompUnit [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant a -[DEBUG] visitConstDef: scalar constant a [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant a = 10 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x55c74576d2b0 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {intb;b=2;returnb-a;} [DEBUG IRGEN] visitBlockItem: intb; [DEBUG] visitDecl: 开始处理声明 @@ -1162,11 +1128,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 b,初始值 0x55df26285860 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: b=2; @@ -1177,11 +1138,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x55df2628d5b0 -[DEBUG] EvalExpr: success, result = 0x55df2628d5b0 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55c74576d5b0 +[DEBUG] EvalExpr: success, result = 0x55c74576d5b0 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55df26245be0 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55df26245be0, rhs = 0x55df2628d5b0 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55c745725be0 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55c745725be0, rhs = 0x55c74576d5b0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -1192,7 +1153,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: returnb-a; [DEBUG IRGEN] visitStmt: returnb-a; [DEBUG IRGEN] HandleReturnStmt: returnb-a; -[DEBUG IRGEN] HandleReturnStmt eval exp: b-a [DEBUG IRGEN] EvalExpr: b-a [DEBUG IRGEN] visitAddExp: b-a [DEBUG IRGEN] visitAddExp: b @@ -1207,8 +1167,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a [DEBUG] visitLVal: constant a -[DEBUG] visitAddExp: left=0x55df2628d710, right=0x55df26285ed0 -[DEBUG] EvalExpr: success, result = 0x55df2628d800 +[DEBUG] visitAddExp: left=0x55c74576d710, type=int, right=0x55c745765ed0, type=int +[DEBUG] EvalExpr: success, result = 0x55c74576d800 +[DEBUG] visitFuncDef: 函数 main 生成完成 define i32 @getint() { entry: } @@ -1284,33 +1245,33 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: 4 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: V, ctx: 0x55c5b2283130 -SymbolTable::addSymbol: stored V with kind=3, const_def_ctx=0x55c5b2283130 +保存常量定义上下文: V, ctx: 0x5563e32d4130 +SymbolTable::addSymbol: stored V with kind=3, const_def_ctx=0x5563e32d4130 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x5563e32d4130 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: space base_type: int is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 32 [DEBUG] visitPrimaryExp: 32 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: space, ctx: 0x55c5b2289e00 -SymbolTable::addSymbol: stored space with kind=3, const_def_ctx=0x55c5b2289e00 +保存常量定义上下文: space, ctx: 0x5563e32dae00 +SymbolTable::addSymbol: stored space with kind=3, const_def_ctx=0x5563e32dae00 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x55c5b2289e00 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c5b2289e00 +SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x5563e32dae00 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x5563e32dae00 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: LF base_type: int is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 10 [DEBUG] visitPrimaryExp: 10 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: LF, ctx: 0x55c5b2289f80 -SymbolTable::addSymbol: stored LF with kind=3, const_def_ctx=0x55c5b2289f80 +保存常量定义上下文: LF, ctx: 0x5563e32daf80 +SymbolTable::addSymbol: stored LF with kind=3, const_def_ctx=0x5563e32daf80 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found LF in scope level 1, kind=3, const_def_ctx=0x55c5b2289f80 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c5b2289f80 +SymbolTable::lookup: found LF in scope level 1, kind=3, const_def_ctx=0x5563e32daf80 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x5563e32daf80 [DEBUG] 常量符号添加完成 [DEBUG] 进入函数: printSolution 返回类型: void SymbolTable::addSymbol: stored color with kind=2, const_def_ctx=0 @@ -1327,14 +1288,14 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b2283ba0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: ExpStmt @@ -1358,7 +1319,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b2283ba0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -1372,17 +1333,17 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 [DEBUG] CheckExp: space [DEBUG] visitUnaryExp: space [DEBUG] visitPrimaryExp: space -SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x55c5b2289e00 +SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x5563e32dae00 CheckLValue: found sym->name = space, sym->kind = 3 绑定常量: space -> ConstDefContext -CheckLValue 绑定变量: space, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2289e00 +CheckLValue 绑定变量: space, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32dae00 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b2283ba0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -1390,7 +1351,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b2283ba0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32d4ba0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -1404,10 +1365,10 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 [DEBUG] CheckExp: LF [DEBUG] visitUnaryExp: LF [DEBUG] visitPrimaryExp: LF -SymbolTable::lookup: found LF in scope level 1, kind=3, const_def_ctx=0x55c5b2289f80 +SymbolTable::lookup: found LF in scope level 1, kind=3, const_def_ctx=0x5563e32daf80 CheckLValue: found sym->name = LF, sym->kind = 3 绑定常量: LF -> ConstDefContext -CheckLValue 绑定变量: LF, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2289f80 +CheckLValue 绑定变量: LF, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32daf80 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 函数 printSolution has_return: 0 return_type_is_void: 1 @@ -1455,10 +1416,10 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 [DEBUG] CheckExp: space [DEBUG] visitUnaryExp: space [DEBUG] visitPrimaryExp: space -SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x55c5b2289e00 +SymbolTable::lookup: found space in scope level 1, kind=3, const_def_ctx=0x5563e32dae00 CheckLValue: found sym->name = space, sym->kind = 3 绑定常量: space -> ConstDefContext -CheckLValue 绑定变量: space, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2289e00 +CheckLValue 绑定变量: space, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32dae00 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] visitStmt: ExpStmt @@ -1518,7 +1479,7 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 函数 printMessage has_return: 0 return_type_is_void: 1 [DEBUG] 进入函数: isSafe 返回类型: int -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 SymbolTable::addSymbol: stored graph with kind=2, const_def_ctx=0 [DEBUG] 添加参数: graph type_kind: 3 is_array: 1 dims: 0 4 SymbolTable::addSymbol: stored color with kind=2, const_def_ctx=0 @@ -1535,14 +1496,14 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22ac310, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0 @@ -1552,7 +1513,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22ac310, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -1564,14 +1525,14 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22add40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -1588,7 +1549,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22ac310, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -1596,7 +1557,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22add40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: color[j] @@ -1612,7 +1573,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22add40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: color[i] @@ -1628,7 +1589,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22ac310, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Return ExpStmt @@ -1643,7 +1604,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22add40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -1651,7 +1612,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22add40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e32fed40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -1659,7 +1620,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22ac310, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -1667,7 +1628,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22ac310, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e32fd310, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -1681,7 +1642,7 @@ dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 isSafe has_return: 1 return_type_is_void: 0 [DEBUG] 进入函数: graphColoring 返回类型: int -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 SymbolTable::addSymbol: stored graph with kind=2, const_def_ctx=0 [DEBUG] 添加参数: graph type_kind: 3 is_array: 1 dims: 0 4 SymbolTable::addSymbol: stored m with kind=2, const_def_ctx=0 @@ -1699,10 +1660,10 @@ CheckLValue 绑定变量: i, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_c dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -1777,7 +1738,7 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22c2cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: m [DEBUG] visitPrimaryExp: m @@ -1806,7 +1767,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22c2cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: If [DEBUG] visitUnaryExp: graphColoring(graph,m,i+1,color) @@ -1881,7 +1842,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22c2cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -1889,7 +1850,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55c5b22c2cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5563e3313cf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -1906,21 +1867,21 @@ dim_count: 0, subscript_count: 0 [DEBUG] CheckVarDef: graph base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 [DEBUG] dim[0] = 4 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 [DEBUG] dim[1] = 4 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -1986,12 +1947,12 @@ SymbolTable::addSymbol: stored m with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: color base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 [DEBUG] dim[0] = 4 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -2012,21 +1973,21 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22d6b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: V [DEBUG] visitPrimaryExp: V -SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x55c5b2283130 +SymbolTable::lookup: found V in scope level 1, kind=3, const_def_ctx=0x5563e32d4130 CheckLValue: found sym->name = V, sym->kind = 3 绑定常量: V -> ConstDefContext -CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c5b2283130 +CheckLValue 绑定变量: V, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5563e32d4130 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found color in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = color, sym->kind = 0 绑定变量: color -> VarDefContext -CheckLValue 绑定变量: color, sym->kind: 0, sym->var_def_ctx: 0x55c5b22d6410, sym->const_def_ctx: 0 +CheckLValue 绑定变量: color, sym->kind: 0, sym->var_def_ctx: 0x5563e3327410, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -2034,7 +1995,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22d6b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 0 @@ -2044,7 +2005,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22d6b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -2052,7 +2013,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c5b22d6b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5563e3327b90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2069,7 +2030,7 @@ SymbolTable::lookup: found graphColoring in scope level 1, kind=1, const_def_ctx SymbolTable::lookup: found graph in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = graph, sym->kind = 0 绑定变量: graph -> VarDefContext -CheckLValue 绑定变量: graph, sym->kind: 0, sym->var_def_ctx: 0x55c5b22cd1e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: graph, sym->kind: 0, sym->var_def_ctx: 0x5563e331e1e0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: m @@ -2078,7 +2039,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x55c5b22d5b30, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x5563e3326b30, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -2089,7 +2050,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found color in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = color, sym->kind = 0 绑定变量: color -> VarDefContext -CheckLValue 绑定变量: color, sym->kind: 0, sym->var_def_ctx: 0x55c5b22d6410, sym->const_def_ctx: 0 +CheckLValue 绑定变量: color, sym->kind: 0, sym->var_def_ctx: 0x5563e3327410, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -2117,30 +2078,21 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitCompUnit [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant V -[DEBUG] visitConstDef: scalar constant V [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant V = 4 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant space -[DEBUG] visitConstDef: scalar constant space [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant space = 32 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant LF -[DEBUG] visitConstDef: scalar constant LF [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant LF = 10 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG IRGEN] visitFuncDef: printSolution -[error] [ir] StoreInst 当前只支持存储 i32 +[DEBUG] visitFuncDef: 创建函数 printSolution,返回类型: void,参数数量: 1 +[DEBUG] visitFuncDef: 函数对象地址: 0x5563e333b480 +[DEBUG] visitFuncDef: 为函数 printSolution 添加参数 color,类型: ptr_int32 +[error] [ir] 存储类型不匹配:期望 int32 ========== test/test_case/functional/22_matrix_multiply.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -2162,30 +2114,30 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: 100 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: MAX_SIZE, ctx: 0x5568ea0b5f80 -SymbolTable::addSymbol: stored MAX_SIZE with kind=3, const_def_ctx=0x5568ea0b5f80 +保存常量定义上下文: MAX_SIZE, ctx: 0x5627a389bf80 +SymbolTable::addSymbol: stored MAX_SIZE with kind=3, const_def_ctx=0x5627a389bf80 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x5627a389bf80 [DEBUG] 常量符号添加完成 [DEBUG] CheckVarDef: a base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: MAX_SIZE [DEBUG] visitPrimaryExp: MAX_SIZE -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3 绑定常量: MAX_SIZE -> ConstDefContext -CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5568ea0b5f80 +CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 [DEBUG] dim[0] = 100 [DEBUG] visitUnaryExp: MAX_SIZE [DEBUG] visitPrimaryExp: MAX_SIZE -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3 绑定常量: MAX_SIZE -> ConstDefContext -CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5568ea0b5f80 +CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 [DEBUG] dim[1] = 100 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -2197,21 +2149,21 @@ SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: b base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: MAX_SIZE [DEBUG] visitPrimaryExp: MAX_SIZE -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3 绑定常量: MAX_SIZE -> ConstDefContext -CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5568ea0b5f80 +CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 [DEBUG] dim[0] = 100 [DEBUG] visitUnaryExp: MAX_SIZE [DEBUG] visitPrimaryExp: MAX_SIZE -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3 绑定常量: MAX_SIZE -> ConstDefContext -CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5568ea0b5f80 +CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 [DEBUG] dim[1] = 100 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -2223,21 +2175,21 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: res base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: MAX_SIZE [DEBUG] visitPrimaryExp: MAX_SIZE -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3 绑定常量: MAX_SIZE -> ConstDefContext -CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5568ea0b5f80 +CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 [DEBUG] dim[0] = 100 [DEBUG] visitUnaryExp: MAX_SIZE [DEBUG] visitPrimaryExp: MAX_SIZE -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 CheckLValue: found sym->name = MAX_SIZE, sym->kind = 3 绑定常量: MAX_SIZE -> ConstDefContext -CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5568ea0b5f80 +CheckLValue 绑定变量: MAX_SIZE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5627a389bf80 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5568ea0b5f80 +SymbolTable::lookup: found MAX_SIZE in scope level 1, kind=3, const_def_ctx=0x5627a389bf80 [DEBUG] dim[1] = 100 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -2271,14 +2223,14 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c9d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: m1 [DEBUG] visitPrimaryExp: m1 SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m1, sym->kind = 0 绑定变量: m1 -> VarDefContext -CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6d70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0 @@ -2293,14 +2245,14 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d3c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n2 [DEBUG] visitPrimaryExp: n2 SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n2, sym->kind = 0 绑定变量: n2 -> VarDefContext -CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6fc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: k base_type: int is_array: 0 dim_count: 0 @@ -2315,21 +2267,21 @@ SymbolTable::addSymbol: stored k with kind=0, const_def_ctx=0 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d54d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n1 [DEBUG] visitPrimaryExp: n1 SymbolTable::lookup: found n1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n1, sym->kind = 0 绑定变量: n1 -> VarDefContext -CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6a80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5627a38aca80, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found res in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = res, sym->kind = 0 绑定变量: res -> VarDefContext -CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5568ea0bf1d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5627a38a51d0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -2337,7 +2289,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c9d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -2345,7 +2297,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d3c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: res[i][j]+a[i][k]*b[k][j] @@ -2354,7 +2306,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found res in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = res, sym->kind = 0 绑定变量: res -> VarDefContext -CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5568ea0bf1d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5627a38a51d0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -2362,7 +2314,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c9d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -2370,7 +2322,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d3c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: a[i][k] @@ -2378,7 +2330,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5568ea0bb5e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5627a38a15e0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -2386,7 +2338,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c9d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: k [DEBUG] visitUnaryExp: k @@ -2394,7 +2346,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d54d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: b[k][j] @@ -2402,7 +2354,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5568ea0be9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5627a38a49c0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: k [DEBUG] visitUnaryExp: k @@ -2410,7 +2362,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d54d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -2418,14 +2370,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d3c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d54d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: k+1 [DEBUG] visitUnaryExp: k @@ -2433,7 +2385,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d54d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x5627a38bb4d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2441,7 +2393,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d3c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -2449,7 +2401,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0d3c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38b9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2457,7 +2409,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c9d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -2465,7 +2417,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c9d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38afd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2481,7 +2433,7 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m1, sym->kind = 0 绑定变量: m1 -> VarDefContext -CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6d70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: getint() [DEBUG] visitUnaryExp: getint() @@ -2492,7 +2444,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found n1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n1, sym->kind = 0 绑定变量: n1 -> VarDefContext -CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6a80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5627a38aca80, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: getint() [DEBUG] visitUnaryExp: getint() @@ -2503,7 +2455,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -2514,21 +2466,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: m1 [DEBUG] visitPrimaryExp: m1 SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m1, sym->kind = 0 绑定变量: m1 -> VarDefContext -CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6d70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -2539,21 +2491,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n1 [DEBUG] visitPrimaryExp: n1 SymbolTable::lookup: found n1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n1, sym->kind = 0 绑定变量: n1 -> VarDefContext -CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6a80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n1, sym->kind: 0, sym->var_def_ctx: 0x5627a38aca80, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5568ea0bb5e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5627a38a15e0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -2561,7 +2513,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -2569,7 +2521,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: getint() @@ -2581,7 +2533,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -2589,7 +2541,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2597,7 +2549,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -2605,7 +2557,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2613,7 +2565,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found m2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m2, sym->kind = 0 绑定变量: m2 -> VarDefContext -CheckLValue 绑定变量: m2, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c71e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m2, sym->kind: 0, sym->var_def_ctx: 0x5627a38ad1e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: getint() [DEBUG] visitUnaryExp: getint() @@ -2624,7 +2576,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n2, sym->kind = 0 绑定变量: n2 -> VarDefContext -CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6fc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: getint() [DEBUG] visitUnaryExp: getint() @@ -2635,7 +2587,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -2646,21 +2598,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: m2 [DEBUG] visitPrimaryExp: m2 SymbolTable::lookup: found m2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m2, sym->kind = 0 绑定变量: m2 -> VarDefContext -CheckLValue 绑定变量: m2, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c71e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m2, sym->kind: 0, sym->var_def_ctx: 0x5627a38ad1e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -2671,21 +2623,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n2 [DEBUG] visitPrimaryExp: n2 SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n2, sym->kind = 0 绑定变量: n2 -> VarDefContext -CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6fc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5568ea0be9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5627a38a49c0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -2693,7 +2645,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -2701,7 +2653,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: getint() @@ -2713,7 +2665,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -2721,7 +2673,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2729,7 +2681,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -2737,7 +2689,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2751,7 +2703,7 @@ SymbolTable::lookup: found matrix_multiply in scope level 1, kind=1, const_def_c SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -2762,21 +2714,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: m1 [DEBUG] visitPrimaryExp: m1 SymbolTable::lookup: found m1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m1, sym->kind = 0 绑定变量: m1 -> VarDefContext -CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6d70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m1, sym->kind: 0, sym->var_def_ctx: 0x5627a38acd70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -2787,14 +2739,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n2 [DEBUG] visitPrimaryExp: n2 SymbolTable::lookup: found n2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n2, sym->kind = 0 绑定变量: n2 -> VarDefContext -CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5568ea0c6fc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n2, sym->kind: 0, sym->var_def_ctx: 0x5627a38acfc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: ExpStmt @@ -2810,7 +2762,7 @@ SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found res in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = res, sym->kind = 0 绑定变量: res -> VarDefContext -CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5568ea0bf1d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: res, sym->kind: 0, sym->var_def_ctx: 0x5627a38a51d0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -2818,7 +2770,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -2826,7 +2778,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -2845,7 +2797,7 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -2853,7 +2805,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3dc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9dc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2872,7 +2824,7 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -2880,7 +2832,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5568ea0e3bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627a38c9bc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -2899,11 +2851,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitCompUnit [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant MAX_SIZE -[DEBUG] visitConstDef: scalar constant MAX_SIZE [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant MAX_SIZE = 100 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -2912,29 +2860,23 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 a -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 10000 [DEBUG] HandleGlobalVariable: 创建全局数组: a [DEBUG] HandleGlobalVariable: 设置全局数组初始化器 -[DEBUG] HandleGlobalVariable: 存储全局数组引用 -[DEBUG] HandleGlobalVariable: 创建全局数组 a,总大小 10000 -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: b [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 b -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 b 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 10000 [DEBUG] HandleGlobalVariable: 创建全局数组: b [DEBUG] HandleGlobalVariable: 设置全局数组初始化器 -[DEBUG] HandleGlobalVariable: 存储全局数组引用 -[DEBUG] HandleGlobalVariable: 创建全局数组 b,总大小 10000 -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -2943,15 +2885,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 res -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 res 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 10000 [DEBUG] HandleGlobalVariable: 创建全局数组: res [DEBUG] HandleGlobalVariable: 设置全局数组初始化器 -[DEBUG] HandleGlobalVariable: 存储全局数组引用 -[DEBUG] HandleGlobalVariable: 创建全局数组 res,总大小 10000 -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -2960,55 +2899,34 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 n1 -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 n1 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: n1 -[DEBUG] HandleGlobalVariable: 无初始化值 -[DEBUG] HandleGlobalVariable: 使用默认初始化值0 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 n1 -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: m1 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 m1 -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 m1 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: m1 -[DEBUG] HandleGlobalVariable: 无初始化值 -[DEBUG] HandleGlobalVariable: 使用默认初始化值0 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 m1 -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: n2 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 n2 -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 n2 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: n2 -[DEBUG] HandleGlobalVariable: 无初始化值 -[DEBUG] HandleGlobalVariable: 使用默认初始化值0 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 n2 -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: m2 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 m2 -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 m2 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: m2 -[DEBUG] HandleGlobalVariable: 无初始化值 -[DEBUG] HandleGlobalVariable: 使用默认初始化值0 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 m2 -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG IRGEN] visitFuncDef: matrix_multiply +[DEBUG] visitFuncDef: 创建函数 matrix_multiply,返回类型: void,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x5627a3926f10 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {inti=0;while(iname = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: a+2 [DEBUG] visitUnaryExp: a @@ -3252,7 +3155,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -3263,7 +3166,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 3 [DEBUG] visitPrimaryExp: 3 @@ -3273,7 +3176,7 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: b+4 [DEBUG] visitUnaryExp: b @@ -3281,7 +3184,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 4 [DEBUG] visitPrimaryExp: 4 @@ -3289,7 +3192,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch+a+b [DEBUG] visitUnaryExp: putch @@ -3297,28 +3200,28 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: b+5 [DEBUG] visitUnaryExp: b @@ -3326,7 +3229,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 5 [DEBUG] visitPrimaryExp: 5 @@ -3337,7 +3240,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 6 [DEBUG] visitPrimaryExp: 6 @@ -3347,7 +3250,7 @@ SymbolTable::addSymbol: stored main with kind=0, const_def_ctx=0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: a+main [DEBUG] visitUnaryExp: a @@ -3355,20 +3258,20 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: main [DEBUG] visitPrimaryExp: main SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch+a+b+main [DEBUG] visitUnaryExp: putch @@ -3376,35 +3279,35 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: main [DEBUG] visitPrimaryExp: main SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: b+a [DEBUG] visitUnaryExp: b @@ -3412,14 +3315,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckVarDef: a base_type: int is_array: 0 dim_count: 0 [DEBUG] CheckExp: main+7 @@ -3428,7 +3331,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 7 [DEBUG] visitPrimaryExp: 7 @@ -3438,7 +3341,7 @@ SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0 SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f40910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: a+8 [DEBUG] visitUnaryExp: a @@ -3446,7 +3349,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f40910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 8 [DEBUG] visitPrimaryExp: 8 @@ -3454,7 +3357,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch+a+b+main [DEBUG] visitUnaryExp: putch @@ -3462,35 +3365,35 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f40910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: main [DEBUG] visitPrimaryExp: main SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: b+a [DEBUG] visitUnaryExp: b @@ -3498,14 +3401,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f40910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckVarDef: b base_type: int is_array: 0 dim_count: 0 [DEBUG] CheckExp: main+9 @@ -3514,7 +3417,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 9 [DEBUG] visitPrimaryExp: 9 @@ -3524,7 +3427,7 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f40910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: a+10 [DEBUG] visitUnaryExp: a @@ -3532,7 +3435,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f40910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642be910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 10 [DEBUG] visitPrimaryExp: 10 @@ -3541,17 +3444,17 @@ dim_count: 0, subscript_count: 0 [DEBUG] visitPrimaryExp: 11 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: a, ctx: 0x557dc5f47b30 -SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x557dc5f47b30 +保存常量定义上下文: a, ctx: 0x5635642c5b30 +SymbolTable::addSymbol: stored a with kind=3, const_def_ctx=0x5635642c5b30 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x557dc5f47b30 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x557dc5f47b30 +SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x5635642c5b30 [DEBUG] 常量符号添加完成 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f44510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: b+12 [DEBUG] visitUnaryExp: b @@ -3559,7 +3462,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f44510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 12 [DEBUG] visitPrimaryExp: 12 @@ -3567,7 +3470,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch+a+b+main [DEBUG] visitUnaryExp: putch @@ -3575,35 +3478,35 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a -SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x557dc5f47b30 +SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30 CheckLValue: found sym->name = a, sym->kind = 3 绑定常量: a -> ConstDefContext -CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x557dc5f47b30 +CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5635642c5b30 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f44510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: main [DEBUG] visitPrimaryExp: main SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: main+b [DEBUG] visitUnaryExp: main @@ -3611,14 +3514,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f44510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckVarDef: main base_type: int is_array: 0 dim_count: 0 [DEBUG] CheckExp: b+13 @@ -3627,7 +3530,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f44510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 13 [DEBUG] visitPrimaryExp: 13 @@ -3637,7 +3540,7 @@ SymbolTable::addSymbol: stored main with kind=0, const_def_ctx=0 SymbolTable::lookup: found main in scope level 8, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3f630, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642bd630, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: main+a [DEBUG] visitUnaryExp: main @@ -3645,20 +3548,20 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found main in scope level 8, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3f630, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642bd630, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a -SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x557dc5f47b30 +SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30 CheckLValue: found sym->name = a, sym->kind = 3 绑定常量: a -> ConstDefContext -CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x557dc5f47b30 +CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5635642c5b30 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch+a+b+main [DEBUG] visitUnaryExp: putch @@ -3666,34 +3569,34 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a -SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x557dc5f47b30 +SymbolTable::lookup: found a in scope level 7, kind=3, const_def_ctx=0x5635642c5b30 CheckLValue: found sym->name = a, sym->kind = 3 绑定常量: a -> ConstDefContext -CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x557dc5f47b30 +CheckLValue 绑定变量: a, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5635642c5b30 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f44510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642c2510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: main [DEBUG] visitPrimaryExp: main SymbolTable::lookup: found main in scope level 8, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3f630, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642bd630, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch-main [DEBUG] visitUnaryExp: putch @@ -3701,20 +3604,20 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: main [DEBUG] visitPrimaryExp: main SymbolTable::lookup: found main in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = main, sym->kind = 0 绑定变量: main -> VarDefContext -CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x557dc5f3c9c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: main, sym->kind: 0, sym->var_def_ctx: 0x5635642ba9c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch-b [DEBUG] visitUnaryExp: putch @@ -3722,20 +3625,20 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x557dc5f36a20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5635642b4a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: putch-a [DEBUG] visitUnaryExp: putch @@ -3743,14 +3646,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x557dc5f25910, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5635642a3910, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Return ExpStmt [DEBUG] 检测到 return 语句 @@ -3762,7 +3665,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found putch in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = putch, sym->kind = 0 绑定变量: putch -> VarDefContext -CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x557dc5f33010, sym->const_def_ctx: 0 +CheckLValue 绑定变量: putch, sym->kind: 0, sym->var_def_ctx: 0x5635642b1010, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 77 [DEBUG] visitPrimaryExp: 77 @@ -3773,6 +3676,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] 运行时库函数声明完成 [DEBUG IRGEN] visitCompUnit [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x5635642db4b0 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {putch(97);putch(10);inta=1,putch=0;{a=a+2;intb=a+3;b=b+4;putch=putch+a+b;{b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}}returnputch%77;} [DEBUG IRGEN] visitBlockItem: putch(97); [DEBUG IRGEN] visitStmt: putch(97); @@ -3785,10 +3691,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 97 [DEBUG IRGEN] visitPrimaryExp: 97 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 97 created as 0x557dc5f5e5b0 -[DEBUG] EvalExpr: success, result = 0x557dc5f5e5b0 +[DEBUG] visitPrimaryExp: constant int 97 created as 0x5635642dc5b0 +[DEBUG] EvalExpr: success, result = 0x5635642dc5b0 [DEBUG IRGEN] visitCallExp: 收集到 1 个参数 -[DEBUG] EvalExpr: success, result = 0x557dc5f5e670 +[DEBUG] EvalExpr: success, result = 0x5635642dc670 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: putch(10); [DEBUG IRGEN] visitStmt: putch(10); @@ -3801,10 +3707,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x557dc5f5e6f0 -[DEBUG] EvalExpr: success, result = 0x557dc5f5e6f0 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x5635642dc6f0 +[DEBUG] EvalExpr: success, result = 0x5635642dc6f0 [DEBUG IRGEN] visitCallExp: 收集到 1 个参数 -[DEBUG] EvalExpr: success, result = 0x557dc5f5e670 +[DEBUG] EvalExpr: success, result = 0x5635642dc670 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: inta=1,putch=0; [DEBUG] visitDecl: 开始处理声明 @@ -3814,9 +3720,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 a -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 1 @@ -3824,19 +3727,13 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x557dc5f5e890 -[DEBUG] EvalExpr: success, result = 0x557dc5f5e890 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 a,初始值 0x557dc5f5e890 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x5635642dc890 +[DEBUG] EvalExpr: success, result = 0x5635642dc890 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: putch [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 putch -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 0 @@ -3844,10 +3741,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x557dc5f5e670 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 putch,初始值 0x557dc5f5e670 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] EvalExpr: success, result = 0x5635642dc670 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: {a=a+2;intb=a+3;b=b+4;putch=putch+a+b;{b=b+5;intmain=b+6;a=a+main;putch=putch+a+b+main;{b=b+a;inta=main+7;a=a+8;putch=putch+a+b+main;{b=b+a;intb=main+9;a=a+10;constinta=11;b=b+12;putch=putch+a+b+main;{main=main+b;intmain=b+13;main=main+a;putch=putch+a+b+main;}putch=putch-main;}putch=putch-b;}putch=putch-a;}} @@ -3867,12 +3761,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x557dc5f5edb0 -[DEBUG] visitAddExp: left=0x557dc5f5ecf0, right=0x557dc5f5edb0 -[DEBUG] EvalExpr: success, result = 0x557dc5f5ee10 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x5635642dcdb0 +[DEBUG] visitAddExp: left=0x5635642dccf0, type=int, right=0x5635642dcdb0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642dce10 [DEBUG] HandleAssignStmt: assigning to a -[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x557dc5f553d0 -[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x557dc5f553d0, rhs = 0x557dc5f5ee10 +[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642d33d0 +[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642d33d0, rhs = 0x5635642dce10 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -3888,9 +3782,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: a+3 @@ -3904,12 +3795,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x557dc5f5f180 -[DEBUG] visitAddExp: left=0x557dc5f5f0e0, right=0x557dc5f5f180 -[DEBUG] EvalExpr: success, result = 0x557dc5f5f200 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 b,初始值 0x557dc5f5f200 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x5635642dd180 +[DEBUG] visitAddExp: left=0x5635642dd0e0, type=int, right=0x5635642dd180, type=int +[DEBUG] EvalExpr: success, result = 0x5635642dd200 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: b=b+4; @@ -3926,12 +3814,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 4 [DEBUG IRGEN] visitPrimaryExp: 4 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 4 created as 0x557dc5f5f480 -[DEBUG] visitAddExp: left=0x557dc5f5f3c0, right=0x557dc5f5f480 -[DEBUG] EvalExpr: success, result = 0x557dc5f5f4e0 +[DEBUG] visitPrimaryExp: constant int 4 created as 0x5635642dd480 +[DEBUG] visitAddExp: left=0x5635642dd3c0, type=int, right=0x5635642dd480, type=int +[DEBUG] EvalExpr: success, result = 0x5635642dd4e0 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x557dc5f5f040 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x557dc5f5f040, rhs = 0x557dc5f5f4e0 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642dd4e0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -3956,17 +3844,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a -[DEBUG] visitAddExp: left=0x557dc5f5f6a0, right=0x557dc5f5f720 +[DEBUG] visitAddExp: left=0x5635642dd6a0, type=int, right=0x5635642dd720, type=int [DEBUG IRGEN] visitMulExp: b [DEBUG IRGEN] visitPrimaryExp: b [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x557dc5f5f870, right=0x557dc5f5f950 -[DEBUG] EvalExpr: success, result = 0x557dc5f5f9f0 +[DEBUG] visitAddExp: left=0x5635642dd870, type=int, right=0x5635642dd950, type=int +[DEBUG] EvalExpr: success, result = 0x5635642dd9f0 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f5f9f0 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642dd9f0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -3991,12 +3879,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 5 [DEBUG IRGEN] visitPrimaryExp: 5 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 5 created as 0x557dc5f5fd20 -[DEBUG] visitAddExp: left=0x557dc5f5fbd0, right=0x557dc5f5fd20 -[DEBUG] EvalExpr: success, result = 0x557dc5f5fd80 +[DEBUG] visitPrimaryExp: constant int 5 created as 0x5635642ddd20 +[DEBUG] visitAddExp: left=0x5635642ddbd0, type=int, right=0x5635642ddd20, type=int +[DEBUG] EvalExpr: success, result = 0x5635642ddd80 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x557dc5f5f040 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x557dc5f5f040, rhs = 0x557dc5f5fd80 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642ddd80 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4012,9 +3900,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 main -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: b+6 @@ -4028,12 +3913,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 6 [DEBUG IRGEN] visitPrimaryExp: 6 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 6 created as 0x557dc5f60080 -[DEBUG] visitAddExp: left=0x557dc5f5ffe0, right=0x557dc5f60080 -[DEBUG] EvalExpr: success, result = 0x557dc5f60100 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 main,初始值 0x557dc5f60100 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 6 created as 0x5635642de080 +[DEBUG] visitAddExp: left=0x5635642ddfe0, type=int, right=0x5635642de080, type=int +[DEBUG] EvalExpr: success, result = 0x5635642de100 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: a=a+main; @@ -4052,11 +3934,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: main -[DEBUG] visitAddExp: left=0x557dc5f602c0, right=0x557dc5f60340 -[DEBUG] EvalExpr: success, result = 0x557dc5f60420 +[DEBUG] visitAddExp: left=0x5635642de2c0, type=int, right=0x5635642de340, type=int +[DEBUG] EvalExpr: success, result = 0x5635642de420 [DEBUG] HandleAssignStmt: assigning to a -[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x557dc5f553d0 -[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x557dc5f553d0, rhs = 0x557dc5f60420 +[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642d33d0 +[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642d33d0, rhs = 0x5635642de420 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4082,23 +3964,23 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a -[DEBUG] visitAddExp: left=0x557dc5f605c0, right=0x557dc5f60640 +[DEBUG] visitAddExp: left=0x5635642de5c0, type=int, right=0x5635642de640, type=int [DEBUG IRGEN] visitMulExp: b [DEBUG IRGEN] visitPrimaryExp: b [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x557dc5f606e0, right=0x557dc5f607c0 +[DEBUG] visitAddExp: left=0x5635642de6e0, type=int, right=0x5635642de7c0, type=int [DEBUG IRGEN] visitMulExp: main [DEBUG IRGEN] visitPrimaryExp: main [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: main -[DEBUG] visitAddExp: left=0x557dc5f60860, right=0x557dc5f60940 -[DEBUG] EvalExpr: success, result = 0x557dc5f609e0 +[DEBUG] visitAddExp: left=0x5635642de860, type=int, right=0x5635642de940, type=int +[DEBUG] EvalExpr: success, result = 0x5635642de9e0 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f609e0 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642de9e0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4125,11 +4007,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a -[DEBUG] visitAddExp: left=0x557dc5f60ce0, right=0x557dc5f60d60 -[DEBUG] EvalExpr: success, result = 0x557dc5f60f70 +[DEBUG] visitAddExp: left=0x5635642dece0, type=int, right=0x5635642ded60, type=int +[DEBUG] EvalExpr: success, result = 0x5635642def70 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x557dc5f5f040 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x557dc5f5f040, rhs = 0x557dc5f60f70 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642def70 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4145,9 +4027,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 a -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: main+7 @@ -4161,12 +4040,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 7 [DEBUG IRGEN] visitPrimaryExp: 7 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 7 created as 0x557dc5f61210 -[DEBUG] visitAddExp: left=0x557dc5f61170, right=0x557dc5f61210 -[DEBUG] EvalExpr: success, result = 0x557dc5f61290 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 a,初始值 0x557dc5f61290 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 7 created as 0x5635642df210 +[DEBUG] visitAddExp: left=0x5635642df170, type=int, right=0x5635642df210, type=int +[DEBUG] EvalExpr: success, result = 0x5635642df290 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: a=a+8; @@ -4183,12 +4059,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 8 [DEBUG IRGEN] visitPrimaryExp: 8 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 8 created as 0x557dc5f614d0 -[DEBUG] visitAddExp: left=0x557dc5f61450, right=0x557dc5f614d0 -[DEBUG] EvalExpr: success, result = 0x557dc5f61530 +[DEBUG] visitPrimaryExp: constant int 8 created as 0x5635642df4d0 +[DEBUG] visitAddExp: left=0x5635642df450, type=int, right=0x5635642df4d0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642df530 [DEBUG] HandleAssignStmt: assigning to a -[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x557dc5f610d0 -[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x557dc5f610d0, rhs = 0x557dc5f61530 +[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642df0d0 +[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642df0d0, rhs = 0x5635642df530 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4214,23 +4090,23 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a -[DEBUG] visitAddExp: left=0x557dc5f616f0, right=0x557dc5f61770 +[DEBUG] visitAddExp: left=0x5635642df6f0, type=int, right=0x5635642df770, type=int [DEBUG IRGEN] visitMulExp: b [DEBUG IRGEN] visitPrimaryExp: b [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x557dc5f61810, right=0x557dc5f618f0 +[DEBUG] visitAddExp: left=0x5635642df810, type=int, right=0x5635642df8f0, type=int [DEBUG IRGEN] visitMulExp: main [DEBUG IRGEN] visitPrimaryExp: main [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: main -[DEBUG] visitAddExp: left=0x557dc5f61990, right=0x557dc5f61a70 -[DEBUG] EvalExpr: success, result = 0x557dc5f61b10 +[DEBUG] visitAddExp: left=0x5635642df990, type=int, right=0x5635642dfa70, type=int +[DEBUG] EvalExpr: success, result = 0x5635642dfb10 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f61b10 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642dfb10 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4257,11 +4133,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a -[DEBUG] visitAddExp: left=0x557dc5f61d40, right=0x557dc5f61dc0 -[DEBUG] EvalExpr: success, result = 0x557dc5f61e40 +[DEBUG] visitAddExp: left=0x5635642dfd40, type=int, right=0x5635642dfdc0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642dfe40 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x557dc5f5f040 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x557dc5f5f040, rhs = 0x557dc5f61e40 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642dd040 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642dd040, rhs = 0x5635642dfe40 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4277,9 +4153,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: main+9 @@ -4293,12 +4166,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 9 [DEBUG IRGEN] visitPrimaryExp: 9 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 9 created as 0x557dc5f62140 -[DEBUG] visitAddExp: left=0x557dc5f620a0, right=0x557dc5f62140 -[DEBUG] EvalExpr: success, result = 0x557dc5f621c0 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 b,初始值 0x557dc5f621c0 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 9 created as 0x5635642e0140 +[DEBUG] visitAddExp: left=0x5635642e00a0, type=int, right=0x5635642e0140, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e01c0 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: a=a+10; @@ -4315,12 +4185,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x557dc5f5e6f0 -[DEBUG] visitAddExp: left=0x557dc5f62380, right=0x557dc5f5e6f0 -[DEBUG] EvalExpr: success, result = 0x557dc5f62400 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x5635642dc6f0 +[DEBUG] visitAddExp: left=0x5635642e0380, type=int, right=0x5635642dc6f0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e0400 [DEBUG] HandleAssignStmt: assigning to a -[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x557dc5f610d0 -[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x557dc5f610d0, rhs = 0x557dc5f62400 +[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x5635642df0d0 +[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x5635642df0d0, rhs = 0x5635642e0400 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4331,11 +4201,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: constinta=11; [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant a -[DEBUG] visitConstDef: scalar constant a [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant a = 11 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: b=b+12; @@ -4352,12 +4218,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 12 [DEBUG IRGEN] visitPrimaryExp: 12 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 12 created as 0x557dc5f62700 -[DEBUG] visitAddExp: left=0x557dc5f62640, right=0x557dc5f62700 -[DEBUG] EvalExpr: success, result = 0x557dc5f62760 +[DEBUG] visitPrimaryExp: constant int 12 created as 0x5635642e0700 +[DEBUG] visitAddExp: left=0x5635642e0640, type=int, right=0x5635642e0700, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e0760 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x557dc5f62000 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x557dc5f62000, rhs = 0x557dc5f62760 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x5635642e0000 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x5635642e0000, rhs = 0x5635642e0760 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4384,23 +4250,23 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a [DEBUG] visitLVal: constant a -[DEBUG] visitAddExp: left=0x557dc5f62920, right=0x557dc5f62580 +[DEBUG] visitAddExp: left=0x5635642e0920, type=int, right=0x5635642e0580, type=int [DEBUG IRGEN] visitMulExp: b [DEBUG IRGEN] visitPrimaryExp: b [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x557dc5f629a0, right=0x557dc5f62a80 +[DEBUG] visitAddExp: left=0x5635642e09a0, type=int, right=0x5635642e0a80, type=int [DEBUG IRGEN] visitMulExp: main [DEBUG IRGEN] visitPrimaryExp: main [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: main -[DEBUG] visitAddExp: left=0x557dc5f62b20, right=0x557dc5f62c00 -[DEBUG] EvalExpr: success, result = 0x557dc5f62ca0 +[DEBUG] visitAddExp: left=0x5635642e0b20, type=int, right=0x5635642e0c00, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e0ca0 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f62ca0 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e0ca0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4427,11 +4293,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x557dc5f63060, right=0x557dc5f630e0 -[DEBUG] EvalExpr: success, result = 0x557dc5f63160 +[DEBUG] visitAddExp: left=0x5635642e1060, type=int, right=0x5635642e10e0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e1160 [DEBUG] HandleAssignStmt: assigning to main -[DEBUG] HandleAssignStmt: found in storage_map_ for main, ptr = 0x557dc5f5ff40 -[DEBUG] HandleAssignStmt: scalar assignment to main, ptr = 0x557dc5f5ff40, rhs = 0x557dc5f63160 +[DEBUG] HandleAssignStmt: found in storage_map_ for main, ptr = 0x5635642ddf40 +[DEBUG] HandleAssignStmt: scalar assignment to main, ptr = 0x5635642ddf40, rhs = 0x5635642e1160 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4447,9 +4313,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 main -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: b+13 @@ -4463,12 +4326,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 13 [DEBUG IRGEN] visitPrimaryExp: 13 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 13 created as 0x557dc5f635f0 -[DEBUG] visitAddExp: left=0x557dc5f63550, right=0x557dc5f635f0 -[DEBUG] EvalExpr: success, result = 0x557dc5f63670 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 main,初始值 0x557dc5f63670 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 13 created as 0x5635642e15f0 +[DEBUG] visitAddExp: left=0x5635642e1550, type=int, right=0x5635642e15f0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e1670 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: main=main+a; @@ -4488,11 +4348,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a [DEBUG] visitLVal: constant a -[DEBUG] visitAddExp: left=0x557dc5f63830, right=0x557dc5f62580 -[DEBUG] EvalExpr: success, result = 0x557dc5f638b0 +[DEBUG] visitAddExp: left=0x5635642e1830, type=int, right=0x5635642e0580, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e18b0 [DEBUG] HandleAssignStmt: assigning to main -[DEBUG] HandleAssignStmt: found in storage_map_ for main, ptr = 0x557dc5f634b0 -[DEBUG] HandleAssignStmt: scalar assignment to main, ptr = 0x557dc5f634b0, rhs = 0x557dc5f638b0 +[DEBUG] HandleAssignStmt: found in storage_map_ for main, ptr = 0x5635642e14b0 +[DEBUG] HandleAssignStmt: scalar assignment to main, ptr = 0x5635642e14b0, rhs = 0x5635642e18b0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4519,23 +4379,23 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a [DEBUG] visitLVal: constant a -[DEBUG] visitAddExp: left=0x557dc5f63a50, right=0x557dc5f62580 +[DEBUG] visitAddExp: left=0x5635642e1a50, type=int, right=0x5635642e0580, type=int [DEBUG IRGEN] visitMulExp: b [DEBUG IRGEN] visitPrimaryExp: b [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x557dc5f63ad0, right=0x557dc5f63bb0 +[DEBUG] visitAddExp: left=0x5635642e1ad0, type=int, right=0x5635642e1bb0, type=int [DEBUG IRGEN] visitMulExp: main [DEBUG IRGEN] visitPrimaryExp: main [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: main -[DEBUG] visitAddExp: left=0x557dc5f63c30, right=0x557dc5f63d10 -[DEBUG] EvalExpr: success, result = 0x557dc5f63db0 +[DEBUG] visitAddExp: left=0x5635642e1c30, type=int, right=0x5635642e1d10, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e1db0 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f63db0 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e1db0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4560,11 +4420,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: main -[DEBUG] visitAddExp: left=0x557dc5f63f70, right=0x557dc5f63ff0 -[DEBUG] EvalExpr: success, result = 0x557dc5f64090 +[DEBUG] visitAddExp: left=0x5635642e1f70, type=int, right=0x5635642e1ff0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e2090 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f64090 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e2090 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4589,11 +4449,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x557dc5f64250, right=0x557dc5f642d0 -[DEBUG] EvalExpr: success, result = 0x557dc5f64370 +[DEBUG] visitAddExp: left=0x5635642e2250, type=int, right=0x5635642e22d0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e2370 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f64370 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e2370 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4619,11 +4479,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a [DEBUG] visitLVal: constant a -[DEBUG] visitAddExp: left=0x557dc5f64530, right=0x557dc5f62580 -[DEBUG] EvalExpr: success, result = 0x557dc5f645b0 +[DEBUG] visitAddExp: left=0x5635642e2530, type=int, right=0x5635642e0580, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e25b0 [DEBUG] HandleAssignStmt: assigning to putch -[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x557dc5f5e9d0 -[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x557dc5f5e9d0, rhs = 0x557dc5f645b0 +[DEBUG] HandleAssignStmt: found in storage_map_ for putch, ptr = 0x5635642dc9d0 +[DEBUG] HandleAssignStmt: scalar assignment to putch, ptr = 0x5635642dc9d0, rhs = 0x5635642e25b0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4636,7 +4496,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: returnputch%77; [DEBUG IRGEN] visitStmt: returnputch%77; [DEBUG IRGEN] HandleReturnStmt: returnputch%77; -[DEBUG IRGEN] HandleReturnStmt eval exp: putch%77 [DEBUG IRGEN] EvalExpr: putch%77 [DEBUG IRGEN] visitAddExp: putch%77 [DEBUG IRGEN] visitMulExp: putch%77 @@ -4647,8 +4506,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitLVal: putch [DEBUG IRGEN] visitPrimaryExp: 77 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 77 created as 0x557dc5f64ae0 -[DEBUG] EvalExpr: success, result = 0x557dc5f64b60 +[DEBUG] visitPrimaryExp: constant int 77 created as 0x5635642e2ae0 +[DEBUG] visitMulExp: left=0x5635642e2a60, type=int, right=0x5635642e2ae0, type=int +[DEBUG] EvalExpr: success, result = 0x5635642e2b60 +[DEBUG] visitFuncDef: 函数 main 生成完成 define i32 @getint() { entry: } @@ -4830,7 +4691,7 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x558b5a45ed40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -4842,7 +4703,7 @@ SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x558b5a4661f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -4853,7 +4714,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x558b5a45ed40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 100 [DEBUG] visitPrimaryExp: 100 @@ -4864,7 +4725,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x558b5a45ed40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 50 [DEBUG] visitPrimaryExp: 50 @@ -4874,7 +4735,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x558b5a4661f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: sum+i [DEBUG] visitUnaryExp: sum @@ -4882,20 +4743,20 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x558b5a4661f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: i [DEBUG] visitPrimaryExp: i SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x558b5a45ed40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x558b5a45ed40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -4903,7 +4764,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x558b5a45ed40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5635d7c34d40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -4917,7 +4778,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x558b5a4661f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5635d7c3c1f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 main has_return: 1 return_type_is_void: 0 @@ -4926,6 +4787,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] 运行时库函数声明完成 [DEBUG IRGEN] visitCompUnit [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x5635d7c55790 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {inti;i=0;intsum;sum=0;while(i<100){if(i==50){break;}sum=sum+i;i=i+1;}returnsum;} [DEBUG IRGEN] visitBlockItem: inti; [DEBUG] visitDecl: 开始处理声明 @@ -4935,11 +4799,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 i -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 i,初始值 0x558b5a47fb40 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: i=0; @@ -4950,10 +4809,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x558b5a47fb40 +[DEBUG] EvalExpr: success, result = 0x5635d7c55b40 [DEBUG] HandleAssignStmt: assigning to i -[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x558b5a47cf20 -[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x558b5a47cf20, rhs = 0x558b5a47fb40 +[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x5635d7c52f20 +[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x5635d7c52f20, rhs = 0x5635d7c55b40 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -4969,11 +4828,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 sum -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 sum,初始值 0x558b5a47fb40 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: sum=0; @@ -4984,10 +4838,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x558b5a47fb40 +[DEBUG] EvalExpr: success, result = 0x5635d7c55b40 [DEBUG] HandleAssignStmt: assigning to sum -[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x558b5a47fe70 -[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x558b5a47fe70, rhs = 0x558b5a47fb40 +[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x5635d7c55e70 +[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x5635d7c55e70, rhs = 0x5635d7c55b40 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -5015,7 +4869,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 100 [DEBUG IRGEN] visitPrimaryExp: 100 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 100 created as 0x558b5a480490 +[DEBUG] visitPrimaryExp: constant int 100 created as 0x5635d7c56490 +[DEBUG] visitRelExp: left=0x5635d7c563a0, type=int, right=0x5635d7c56490, type=int [DEBUG WHILE] condBlock has terminator: 1 [DEBUG WHILE] Generating body in block: while.body [DEBUG IRGEN] visitStmt: {if(i==50){break;}sum=sum+i;i=i+1;} @@ -5036,7 +4891,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 50 [DEBUG IRGEN] visitPrimaryExp: 50 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 50 created as 0x558b5a4809a0 +[DEBUG] visitPrimaryExp: constant int 50 created as 0x5635d7c569a0 +[DEBUG] visitEqExp: left=0x5635d7c56920, type=int, right=0x5635d7c569a0, type=int [DEBUG IF] Creating condbr: %t5 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {break;} @@ -5068,11 +4924,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: i -[DEBUG] visitAddExp: left=0x558b5a480cf0, right=0x558b5a480e00 -[DEBUG] EvalExpr: success, result = 0x558b5a480f90 +[DEBUG] visitAddExp: left=0x5635d7c56cf0, type=int, right=0x5635d7c56e00, type=int +[DEBUG] EvalExpr: success, result = 0x5635d7c56f90 [DEBUG] HandleAssignStmt: assigning to sum -[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x558b5a47fe70 -[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x558b5a47fe70, rhs = 0x558b5a480f90 +[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x5635d7c55e70 +[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x5635d7c55e70, rhs = 0x5635d7c56f90 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -5094,12 +4950,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x558b5a4811e0 -[DEBUG] visitAddExp: left=0x558b5a481110, right=0x558b5a4811e0 -[DEBUG] EvalExpr: success, result = 0x558b5a481260 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x5635d7c571e0 +[DEBUG] visitAddExp: left=0x5635d7c57110, type=int, right=0x5635d7c571e0, type=int +[DEBUG] EvalExpr: success, result = 0x5635d7c57260 [DEBUG] HandleAssignStmt: assigning to i -[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x558b5a47cf20 -[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x558b5a47cf20, rhs = 0x558b5a481260 +[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x5635d7c52f20 +[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x5635d7c52f20, rhs = 0x5635d7c57260 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -5117,7 +4973,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: returnsum; [DEBUG IRGEN] visitStmt: returnsum; [DEBUG IRGEN] HandleReturnStmt: returnsum; -[DEBUG IRGEN] HandleReturnStmt eval exp: sum [DEBUG IRGEN] EvalExpr: sum [DEBUG IRGEN] visitAddExp: sum [DEBUG IRGEN] visitMulExp: sum @@ -5125,7 +4980,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: sum -[DEBUG] EvalExpr: success, result = 0x558b5a4814d0 +[DEBUG] EvalExpr: success, result = 0x5635d7c574d0 +[DEBUG] visitFuncDef: 函数 main 生成完成 define i32 @getint() { entry: } @@ -5232,7 +5088,7 @@ SymbolTable::addSymbol: stored d with kind=0, const_def_ctx=0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cad00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55b313a55d00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 10 [DEBUG] visitUnaryExp: 10 @@ -5241,7 +5097,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cb4d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55b313a564d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 4 [DEBUG] visitUnaryExp: 4 @@ -5250,7 +5106,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found c in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = c, sym->kind = 0 绑定变量: c -> VarDefContext -CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cbc80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x55b313a56c80, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 2 [DEBUG] visitUnaryExp: 2 @@ -5259,7 +5115,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cbfa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55b313a56fa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 2 [DEBUG] visitUnaryExp: 2 @@ -5277,14 +5133,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found c in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = c, sym->kind = 0 绑定变量: c -> VarDefContext -CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cbc80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: c, sym->kind: 0, sym->var_def_ctx: 0x55b313a56c80, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cad00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55b313a55d00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: (b-d) [DEBUG] visitPrimaryExp: (b-d) @@ -5294,14 +5150,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cb4d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55b313a564d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: d [DEBUG] visitPrimaryExp: d SymbolTable::lookup: found d in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x560cfc3cbfa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55b313a56fa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 main has_return: 1 return_type_is_void: 0 @@ -5310,6 +5166,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] 运行时库函数声明完成 [DEBUG IRGEN] visitCompUnit [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x55b313a6b220 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {inta,b,c,d;a=10;b=4;c=2;d=2;return(c+a)*(b-d);} [DEBUG IRGEN] visitBlockItem: inta,b,c,d; [DEBUG] visitDecl: 开始处理声明 @@ -5319,41 +5178,21 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 a -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 a,初始值 0x560cfc3e0660 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: b [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 b,初始值 0x560cfc3e0660 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: c [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 c -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 c,初始值 0x560cfc3e0660 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitVarDef: 开始处理变量定义 [DEBUG] visitVarDef: 变量名称: d [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 d -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 无初始化值,使用0 -[DEBUG] HandleLocalVariable: 创建局部变量 d,初始值 0x560cfc3e0660 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: a=10; @@ -5364,11 +5203,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x560cfc3e0cb0 -[DEBUG] EvalExpr: success, result = 0x560cfc3e0cb0 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x55b313a6bcb0 +[DEBUG] EvalExpr: success, result = 0x55b313a6bcb0 [DEBUG] HandleAssignStmt: assigning to a -[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x560cfc3de4a0 -[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x560cfc3de4a0, rhs = 0x560cfc3e0cb0 +[DEBUG] HandleAssignStmt: found in storage_map_ for a, ptr = 0x55b313a694a0 +[DEBUG] HandleAssignStmt: scalar assignment to a, ptr = 0x55b313a694a0, rhs = 0x55b313a6bcb0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -5384,11 +5223,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 4 [DEBUG IRGEN] visitPrimaryExp: 4 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 4 created as 0x560cfc3e0ee0 -[DEBUG] EvalExpr: success, result = 0x560cfc3e0ee0 +[DEBUG] visitPrimaryExp: constant int 4 created as 0x55b313a6bee0 +[DEBUG] EvalExpr: success, result = 0x55b313a6bee0 [DEBUG] HandleAssignStmt: assigning to b -[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x560cfc3e07e0 -[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x560cfc3e07e0, rhs = 0x560cfc3e0ee0 +[DEBUG] HandleAssignStmt: found in storage_map_ for b, ptr = 0x55b313a6b7e0 +[DEBUG] HandleAssignStmt: scalar assignment to b, ptr = 0x55b313a6b7e0, rhs = 0x55b313a6bee0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -5404,11 +5243,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x560cfc3e1040 -[DEBUG] EvalExpr: success, result = 0x560cfc3e1040 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55b313a6c040 +[DEBUG] EvalExpr: success, result = 0x55b313a6c040 [DEBUG] HandleAssignStmt: assigning to c -[DEBUG] HandleAssignStmt: found in storage_map_ for c, ptr = 0x560cfc3e0960 -[DEBUG] HandleAssignStmt: scalar assignment to c, ptr = 0x560cfc3e0960, rhs = 0x560cfc3e1040 +[DEBUG] HandleAssignStmt: found in storage_map_ for c, ptr = 0x55b313a6b960 +[DEBUG] HandleAssignStmt: scalar assignment to c, ptr = 0x55b313a6b960, rhs = 0x55b313a6c040 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -5424,11 +5263,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x560cfc3e1040 -[DEBUG] EvalExpr: success, result = 0x560cfc3e1040 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55b313a6c040 +[DEBUG] EvalExpr: success, result = 0x55b313a6c040 [DEBUG] HandleAssignStmt: assigning to d -[DEBUG] HandleAssignStmt: found in storage_map_ for d, ptr = 0x560cfc3e0b50 -[DEBUG] HandleAssignStmt: scalar assignment to d, ptr = 0x560cfc3e0b50, rhs = 0x560cfc3e1040 +[DEBUG] HandleAssignStmt: found in storage_map_ for d, ptr = 0x55b313a6bb50 +[DEBUG] HandleAssignStmt: scalar assignment to d, ptr = 0x55b313a6bb50, rhs = 0x55b313a6c040 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -5439,7 +5278,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: return(c+a)*(b-d); [DEBUG IRGEN] visitStmt: return(c+a)*(b-d); [DEBUG IRGEN] HandleReturnStmt: return(c+a)*(b-d); -[DEBUG IRGEN] HandleReturnStmt eval exp: (c+a)*(b-d) [DEBUG IRGEN] EvalExpr: (c+a)*(b-d) [DEBUG IRGEN] visitAddExp: (c+a)*(b-d) [DEBUG IRGEN] visitMulExp: (c+a)*(b-d) @@ -5460,8 +5298,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: a -[DEBUG] visitAddExp: left=0x560cfc3e12a0, right=0x560cfc3e1390 -[DEBUG] EvalExpr: success, result = 0x560cfc3e1480 +[DEBUG] visitAddExp: left=0x55b313a6c2a0, type=int, right=0x55b313a6c390, type=int +[DEBUG] EvalExpr: success, result = 0x55b313a6c480 [DEBUG IRGEN] visitPrimaryExp: (b-d) [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting parenthesized expression @@ -5478,9 +5316,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: d -[DEBUG] visitAddExp: left=0x560cfc3e1540, right=0x560cfc3e1650 -[DEBUG] EvalExpr: success, result = 0x560cfc3e1760 -[DEBUG] EvalExpr: success, result = 0x560cfc3e1840 +[DEBUG] visitAddExp: left=0x55b313a6c540, type=int, right=0x55b313a6c650, type=int +[DEBUG] EvalExpr: success, result = 0x55b313a6c760 +[DEBUG] visitMulExp: left=0x55b313a6c480, type=int, right=0x55b313a6c760, type=int +[DEBUG] EvalExpr: success, result = 0x55b313a6c840 +[DEBUG] visitFuncDef: 函数 main 生成完成 define i32 @getint() { entry: } @@ -5573,55 +5413,55 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: 5.5 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: RADIUS, ctx: 0x55c563f2b280 -SymbolTable::addSymbol: stored RADIUS with kind=3, const_def_ctx=0x55c563f2b280 +保存常量定义上下文: RADIUS, ctx: 0x55db9d7e0280 +SymbolTable::addSymbol: stored RADIUS with kind=3, const_def_ctx=0x55db9d7e0280 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f2b280 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e0280 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: PI base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 03.141592653589793 [DEBUG] visitPrimaryExp: 03.141592653589793 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: PI, ctx: 0x55c563f33850 -SymbolTable::addSymbol: stored PI with kind=3, const_def_ctx=0x55c563f33850 +保存常量定义上下文: PI, ctx: 0x55db9d7e8850 +SymbolTable::addSymbol: stored PI with kind=3, const_def_ctx=0x55db9d7e8850 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f33850 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e8850 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: EPS base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 1e-6 [DEBUG] visitPrimaryExp: 1e-6 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: EPS, ctx: 0x55c563f32fa0 -SymbolTable::addSymbol: stored EPS with kind=3, const_def_ctx=0x55c563f32fa0 +保存常量定义上下文: EPS, ctx: 0x55db9d7e7fa0 +SymbolTable::addSymbol: stored EPS with kind=3, const_def_ctx=0x55db9d7e7fa0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found EPS in scope level 1, kind=3, const_def_ctx=0x55c563f32fa0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f32fa0 +SymbolTable::lookup: found EPS in scope level 1, kind=3, const_def_ctx=0x55db9d7e7fa0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e7fa0 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: PI_HEX base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 0x1.921fb6p+1 [DEBUG] visitPrimaryExp: 0x1.921fb6p+1 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: PI_HEX, ctx: 0x55c563f33570 -SymbolTable::addSymbol: stored PI_HEX with kind=3, const_def_ctx=0x55c563f33570 +保存常量定义上下文: PI_HEX, ctx: 0x55db9d7e8570 +SymbolTable::addSymbol: stored PI_HEX with kind=3, const_def_ctx=0x55db9d7e8570 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55c563f33570 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f33570 +SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55db9d7e8570 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7e8570 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: HEX2 base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 0x.AP-3 [DEBUG] visitPrimaryExp: 0x.AP-3 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: HEX2, ctx: 0x55c563f398c0 -SymbolTable::addSymbol: stored HEX2 with kind=3, const_def_ctx=0x55c563f398c0 +保存常量定义上下文: HEX2, ctx: 0x55db9d7ee8c0 +SymbolTable::addSymbol: stored HEX2 with kind=3, const_def_ctx=0x55db9d7ee8c0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found HEX2 in scope level 1, kind=3, const_def_ctx=0x55c563f398c0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f398c0 +SymbolTable::lookup: found HEX2 in scope level 1, kind=3, const_def_ctx=0x55db9d7ee8c0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7ee8c0 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: FACT base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: -.33E+5 @@ -5629,178 +5469,178 @@ CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f398c0 [DEBUG] visitPrimaryExp: .33E+5 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: FACT, ctx: 0x55c563f3bee0 -SymbolTable::addSymbol: stored FACT with kind=3, const_def_ctx=0x55c563f3bee0 +保存常量定义上下文: FACT, ctx: 0x55db9d7f0ee0 +SymbolTable::addSymbol: stored FACT with kind=3, const_def_ctx=0x55db9d7f0ee0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found FACT in scope level 1, kind=3, const_def_ctx=0x55c563f3bee0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f3bee0 +SymbolTable::lookup: found FACT in scope level 1, kind=3, const_def_ctx=0x55db9d7f0ee0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f0ee0 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: EVAL1 base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: PI [DEBUG] visitPrimaryExp: PI -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 CheckLValue: found sym->name = PI, sym->kind = 3 绑定常量: PI -> ConstDefContext -CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f33850 +CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: RADIUS [DEBUG] visitPrimaryExp: RADIUS -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 CheckLValue: found sym->name = RADIUS, sym->kind = 3 绑定常量: RADIUS -> ConstDefContext -CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f2b280 +CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: RADIUS [DEBUG] visitPrimaryExp: RADIUS -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 CheckLValue: found sym->name = RADIUS, sym->kind = 3 绑定常量: RADIUS -> ConstDefContext -CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f2b280 +CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: EVAL1, ctx: 0x55c563f3e030 -SymbolTable::addSymbol: stored EVAL1 with kind=3, const_def_ctx=0x55c563f3e030 +保存常量定义上下文: EVAL1, ctx: 0x55db9d7f3030 +SymbolTable::addSymbol: stored EVAL1 with kind=3, const_def_ctx=0x55db9d7f3030 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found EVAL1 in scope level 1, kind=3, const_def_ctx=0x55c563f3e030 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f3e030 +SymbolTable::lookup: found EVAL1 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3030 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f3030 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: EVAL2 base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 [DEBUG] visitUnaryExp: PI_HEX [DEBUG] visitPrimaryExp: PI_HEX -SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55c563f33570 +SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55db9d7e8570 CheckLValue: found sym->name = PI_HEX, sym->kind = 3 绑定常量: PI_HEX -> ConstDefContext -CheckLValue 绑定变量: PI_HEX, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f33570 +CheckLValue 绑定变量: PI_HEX, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8570 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: RADIUS [DEBUG] visitPrimaryExp: RADIUS -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 CheckLValue: found sym->name = RADIUS, sym->kind = 3 绑定常量: RADIUS -> ConstDefContext -CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f2b280 +CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55c563f33570 -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found PI_HEX in scope level 1, kind=3, const_def_ctx=0x55db9d7e8570 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: EVAL2, ctx: 0x55c563f3ee60 -SymbolTable::addSymbol: stored EVAL2 with kind=3, const_def_ctx=0x55c563f3ee60 +保存常量定义上下文: EVAL2, ctx: 0x55db9d7f3e60 +SymbolTable::addSymbol: stored EVAL2 with kind=3, const_def_ctx=0x55db9d7f3e60 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55c563f3ee60 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f3ee60 +SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3e60 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f3e60 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: EVAL3 base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: PI [DEBUG] visitPrimaryExp: PI -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 CheckLValue: found sym->name = PI, sym->kind = 3 绑定常量: PI -> ConstDefContext -CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f33850 +CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 [DEBUG] visitUnaryExp: RADIUS [DEBUG] visitPrimaryExp: RADIUS -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 CheckLValue: found sym->name = RADIUS, sym->kind = 3 绑定常量: RADIUS -> ConstDefContext -CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f2b280 +CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: EVAL3, ctx: 0x55c563f41f50 -SymbolTable::addSymbol: stored EVAL3 with kind=3, const_def_ctx=0x55c563f41f50 +保存常量定义上下文: EVAL3, ctx: 0x55db9d7f6f50 +SymbolTable::addSymbol: stored EVAL3 with kind=3, const_def_ctx=0x55db9d7f6f50 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found EVAL3 in scope level 1, kind=3, const_def_ctx=0x55c563f41f50 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f41f50 +SymbolTable::lookup: found EVAL3 in scope level 1, kind=3, const_def_ctx=0x55db9d7f6f50 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7f6f50 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: CONV1 base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 233 [DEBUG] visitPrimaryExp: 233 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: CONV1, ctx: 0x55c563f46210 -SymbolTable::addSymbol: stored CONV1 with kind=3, const_def_ctx=0x55c563f46210 +保存常量定义上下文: CONV1, ctx: 0x55db9d7fb210 +SymbolTable::addSymbol: stored CONV1 with kind=3, const_def_ctx=0x55db9d7fb210 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found CONV1 in scope level 1, kind=3, const_def_ctx=0x55c563f46210 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f46210 +SymbolTable::lookup: found CONV1 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb210 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fb210 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: CONV2 base_type: float is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 0xfff [DEBUG] visitPrimaryExp: 0xfff [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: CONV2, ctx: 0x55c563f469a0 -SymbolTable::addSymbol: stored CONV2 with kind=3, const_def_ctx=0x55c563f469a0 +保存常量定义上下文: CONV2, ctx: 0x55db9d7fb9a0 +SymbolTable::addSymbol: stored CONV2 with kind=3, const_def_ctx=0x55db9d7fb9a0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found CONV2 in scope level 1, kind=3, const_def_ctx=0x55c563f469a0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f469a0 +SymbolTable::lookup: found CONV2 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb9a0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fb9a0 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: MAX base_type: int is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 1e9 [DEBUG] visitPrimaryExp: 1e9 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: MAX, ctx: 0x55c563f47f10 -SymbolTable::addSymbol: stored MAX with kind=3, const_def_ctx=0x55c563f47f10 +保存常量定义上下文: MAX, ctx: 0x55db9d7fcf10 +SymbolTable::addSymbol: stored MAX with kind=3, const_def_ctx=0x55db9d7fcf10 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found MAX in scope level 1, kind=3, const_def_ctx=0x55c563f47f10 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f47f10 +SymbolTable::lookup: found MAX in scope level 1, kind=3, const_def_ctx=0x55db9d7fcf10 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fcf10 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: TWO base_type: int is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 2.9 [DEBUG] visitPrimaryExp: 2.9 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: TWO, ctx: 0x55c563f48760 -SymbolTable::addSymbol: stored TWO with kind=3, const_def_ctx=0x55c563f48760 +保存常量定义上下文: TWO, ctx: 0x55db9d7fd760 +SymbolTable::addSymbol: stored TWO with kind=3, const_def_ctx=0x55db9d7fd760 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55c563f48760 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f48760 +SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55db9d7fd760 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fd760 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: THREE base_type: int is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: 3.2 [DEBUG] visitPrimaryExp: 3.2 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: THREE, ctx: 0x55c563f48e30 -SymbolTable::addSymbol: stored THREE with kind=3, const_def_ctx=0x55c563f48e30 +保存常量定义上下文: THREE, ctx: 0x55db9d7fde30 +SymbolTable::addSymbol: stored THREE with kind=3, const_def_ctx=0x55db9d7fde30 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55c563f48e30 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f48e30 +SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55db9d7fde30 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fde30 [DEBUG] 常量符号添加完成 [DEBUG] CheckConstDef: FIVE base_type: int is_array: 0 dim_count: 0 [DEBUG] visitUnaryExp: TWO [DEBUG] visitPrimaryExp: TWO -SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55c563f48760 +SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55db9d7fd760 CheckLValue: found sym->name = TWO, sym->kind = 3 绑定常量: TWO -> ConstDefContext -CheckLValue 绑定变量: TWO, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f48760 +CheckLValue 绑定变量: TWO, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fd760 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: THREE [DEBUG] visitPrimaryExp: THREE -SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55c563f48e30 +SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55db9d7fde30 CheckLValue: found sym->name = THREE, sym->kind = 3 绑定常量: THREE -> ConstDefContext -CheckLValue 绑定变量: THREE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f48e30 +CheckLValue 绑定变量: THREE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fde30 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55c563f48760 -SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55c563f48e30 +SymbolTable::lookup: found TWO in scope level 1, kind=3, const_def_ctx=0x55db9d7fd760 +SymbolTable::lookup: found THREE in scope level 1, kind=3, const_def_ctx=0x55db9d7fde30 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: FIVE, ctx: 0x55c563f49610 -SymbolTable::addSymbol: stored FIVE with kind=3, const_def_ctx=0x55c563f49610 +保存常量定义上下文: FIVE, ctx: 0x55db9d7fe610 +SymbolTable::addSymbol: stored FIVE with kind=3, const_def_ctx=0x55db9d7fe610 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found FIVE in scope level 1, kind=3, const_def_ctx=0x55c563f49610 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55c563f49610 +SymbolTable::lookup: found FIVE in scope level 1, kind=3, const_def_ctx=0x55db9d7fe610 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55db9d7fe610 [DEBUG] 常量符号添加完成 [DEBUG] 进入函数: float_abs 返回类型: float SymbolTable::addSymbol: stored x with kind=2, const_def_ctx=0 @@ -5853,10 +5693,10 @@ SymbolTable::addSymbol: stored radius with kind=2, const_def_ctx=0 [DEBUG] CheckExp: PI*radius*radius+(radius*radius)*PI [DEBUG] visitUnaryExp: PI [DEBUG] visitPrimaryExp: PI -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 CheckLValue: found sym->name = PI, sym->kind = 3 绑定常量: PI -> ConstDefContext -CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f33850 +CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: radius [DEBUG] visitPrimaryExp: radius @@ -5887,10 +5727,10 @@ CheckLValue 绑定变量: radius, sym->kind: 2, sym->var_def_ctx: 0, sym->const_ dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: PI [DEBUG] visitPrimaryExp: PI -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 CheckLValue: found sym->name = PI, sym->kind = 3 绑定常量: PI -> ConstDefContext -CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f33850 +CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -5923,10 +5763,10 @@ dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 2 [DEBUG] visitUnaryExp: EPS [DEBUG] visitPrimaryExp: EPS -SymbolTable::lookup: found EPS in scope level 1, kind=3, const_def_ctx=0x55c563f32fa0 +SymbolTable::lookup: found EPS in scope level 1, kind=3, const_def_ctx=0x55db9d7e7fa0 CheckLValue: found sym->name = EPS, sym->kind = 3 绑定常量: EPS -> ConstDefContext -CheckLValue 绑定变量: EPS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f32fa0 +CheckLValue 绑定变量: EPS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e7fa0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Return ExpStmt @@ -6122,18 +5962,18 @@ SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: HEX2 [DEBUG] visitUnaryExp: HEX2 [DEBUG] visitPrimaryExp: HEX2 -SymbolTable::lookup: found HEX2 in scope level 1, kind=3, const_def_ctx=0x55c563f398c0 +SymbolTable::lookup: found HEX2 in scope level 1, kind=3, const_def_ctx=0x55db9d7ee8c0 CheckLValue: found sym->name = HEX2, sym->kind = 3 绑定常量: HEX2 -> ConstDefContext -CheckLValue 绑定变量: HEX2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f398c0 +CheckLValue 绑定变量: HEX2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7ee8c0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: FACT [DEBUG] visitUnaryExp: FACT [DEBUG] visitPrimaryExp: FACT -SymbolTable::lookup: found FACT in scope level 1, kind=3, const_def_ctx=0x55c563f3bee0 +SymbolTable::lookup: found FACT in scope level 1, kind=3, const_def_ctx=0x55db9d7f0ee0 CheckLValue: found sym->name = FACT, sym->kind = 3 绑定常量: FACT -> ConstDefContext -CheckLValue 绑定变量: FACT, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f3bee0 +CheckLValue 绑定变量: FACT, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f0ee0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 2 [DEBUG] 检查参数 1: 实参类型 2 形参类型 2 @@ -6154,18 +5994,18 @@ SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: EVAL1 [DEBUG] visitUnaryExp: EVAL1 [DEBUG] visitPrimaryExp: EVAL1 -SymbolTable::lookup: found EVAL1 in scope level 1, kind=3, const_def_ctx=0x55c563f3e030 +SymbolTable::lookup: found EVAL1 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3030 CheckLValue: found sym->name = EVAL1, sym->kind = 3 绑定常量: EVAL1 -> ConstDefContext -CheckLValue 绑定变量: EVAL1, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f3e030 +CheckLValue 绑定变量: EVAL1, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f3030 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: EVAL2 [DEBUG] visitUnaryExp: EVAL2 [DEBUG] visitPrimaryExp: EVAL2 -SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55c563f3ee60 +SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3e60 CheckLValue: found sym->name = EVAL2, sym->kind = 3 绑定常量: EVAL2 -> ConstDefContext -CheckLValue 绑定变量: EVAL2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f3ee60 +CheckLValue 绑定变量: EVAL2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f3e60 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 2 [DEBUG] 检查参数 1: 实参类型 2 形参类型 2 @@ -6186,18 +6026,18 @@ SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: EVAL2 [DEBUG] visitUnaryExp: EVAL2 [DEBUG] visitPrimaryExp: EVAL2 -SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55c563f3ee60 +SymbolTable::lookup: found EVAL2 in scope level 1, kind=3, const_def_ctx=0x55db9d7f3e60 CheckLValue: found sym->name = EVAL2, sym->kind = 3 绑定常量: EVAL2 -> ConstDefContext -CheckLValue 绑定变量: EVAL2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f3ee60 +CheckLValue 绑定变量: EVAL2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f3e60 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: EVAL3 [DEBUG] visitUnaryExp: EVAL3 [DEBUG] visitPrimaryExp: EVAL3 -SymbolTable::lookup: found EVAL3 in scope level 1, kind=3, const_def_ctx=0x55c563f41f50 +SymbolTable::lookup: found EVAL3 in scope level 1, kind=3, const_def_ctx=0x55db9d7f6f50 CheckLValue: found sym->name = EVAL3, sym->kind = 3 绑定常量: EVAL3 -> ConstDefContext -CheckLValue 绑定变量: EVAL3, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f41f50 +CheckLValue 绑定变量: EVAL3, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7f6f50 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 2 [DEBUG] 检查参数 1: 实参类型 2 形参类型 2 @@ -6224,10 +6064,10 @@ SymbolTable::lookup: found circle_area in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: RADIUS [DEBUG] visitUnaryExp: RADIUS [DEBUG] visitPrimaryExp: RADIUS -SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55c563f2b280 +SymbolTable::lookup: found RADIUS in scope level 1, kind=3, const_def_ctx=0x55db9d7e0280 CheckLValue: found sym->name = RADIUS, sym->kind = 3 绑定常量: RADIUS -> ConstDefContext -CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f2b280 +CheckLValue 绑定变量: RADIUS, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e0280 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 1 [DEBUG] CheckExp: circle_area(FIVE) @@ -6239,10 +6079,10 @@ SymbolTable::lookup: found circle_area in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: FIVE [DEBUG] visitUnaryExp: FIVE [DEBUG] visitPrimaryExp: FIVE -SymbolTable::lookup: found FIVE in scope level 1, kind=3, const_def_ctx=0x55c563f49610 +SymbolTable::lookup: found FIVE in scope level 1, kind=3, const_def_ctx=0x55db9d7fe610 CheckLValue: found sym->name = FIVE, sym->kind = 3 绑定常量: FIVE -> ConstDefContext -CheckLValue 绑定变量: FIVE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f49610 +CheckLValue 绑定变量: FIVE, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fe610 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 0: 实参类型 2 形参类型 2 @@ -6264,18 +6104,18 @@ SymbolTable::lookup: found float_eq in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: CONV1 [DEBUG] visitUnaryExp: CONV1 [DEBUG] visitPrimaryExp: CONV1 -SymbolTable::lookup: found CONV1 in scope level 1, kind=3, const_def_ctx=0x55c563f46210 +SymbolTable::lookup: found CONV1 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb210 CheckLValue: found sym->name = CONV1, sym->kind = 3 绑定常量: CONV1 -> ConstDefContext -CheckLValue 绑定变量: CONV1, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f46210 +CheckLValue 绑定变量: CONV1, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fb210 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: CONV2 [DEBUG] visitUnaryExp: CONV2 [DEBUG] visitPrimaryExp: CONV2 -SymbolTable::lookup: found CONV2 in scope level 1, kind=3, const_def_ctx=0x55c563f469a0 +SymbolTable::lookup: found CONV2 in scope level 1, kind=3, const_def_ctx=0x55db9d7fb9a0 CheckLValue: found sym->name = CONV2, sym->kind = 3 绑定常量: CONV2 -> ConstDefContext -CheckLValue 绑定变量: CONV2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f469a0 +CheckLValue 绑定变量: CONV2, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fb9a0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 2 [DEBUG] 检查参数 1: 实参类型 2 形参类型 2 @@ -6364,7 +6204,7 @@ SymbolTable::lookup: found getfarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = arr, sym->kind = 0 绑定变量: arr -> VarDefContext -CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55c563f85a80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 4 形参类型 4 @@ -6376,14 +6216,14 @@ SymbolTable::addSymbol: stored len with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c563f84b70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55db9d839b70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: MAX [DEBUG] visitPrimaryExp: MAX -SymbolTable::lookup: found MAX in scope level 1, kind=3, const_def_ctx=0x55c563f47f10 +SymbolTable::lookup: found MAX in scope level 1, kind=3, const_def_ctx=0x55db9d7fcf10 CheckLValue: found sym->name = MAX, sym->kind = 3 绑定常量: MAX -> ConstDefContext -CheckLValue 绑定变量: MAX, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f47f10 +CheckLValue 绑定变量: MAX, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7fcf10 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: input base_type: float is_array: 0 dim_count: 0 @@ -6398,24 +6238,24 @@ SymbolTable::addSymbol: stored input with kind=0, const_def_ctx=0 [DEBUG] CheckExp: PI*input*input [DEBUG] visitUnaryExp: PI [DEBUG] visitPrimaryExp: PI -SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55c563f33850 +SymbolTable::lookup: found PI in scope level 1, kind=3, const_def_ctx=0x55db9d7e8850 CheckLValue: found sym->name = PI, sym->kind = 3 绑定常量: PI -> ConstDefContext -CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55c563f33850 +CheckLValue 绑定变量: PI, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55db9d7e8850 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: input [DEBUG] visitPrimaryExp: input SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = input, sym->kind = 0 绑定变量: input -> VarDefContext -CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55c563f8bdb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: input [DEBUG] visitPrimaryExp: input SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = input, sym->kind = 0 绑定变量: input -> VarDefContext -CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55c563f8bdb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 SymbolTable::addSymbol: stored area with kind=0, const_def_ctx=0 [DEBUG] 符号添加完成: area type_kind: 2 is_array: 0 @@ -6432,7 +6272,7 @@ SymbolTable::lookup: found circle_area in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = input, sym->kind = 0 绑定变量: input -> VarDefContext -CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55c563f8bdb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 1 SymbolTable::addSymbol: stored area_trunc with kind=0, const_def_ctx=0 @@ -6441,7 +6281,7 @@ SymbolTable::addSymbol: stored area_trunc with kind=0, const_def_ctx=0 SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = arr, sym->kind = 0 绑定变量: arr -> VarDefContext -CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55c563f85a80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: p [DEBUG] visitUnaryExp: p @@ -6449,7 +6289,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = p, sym->kind = 0 绑定变量: p -> VarDefContext -CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55c563f85130, sym->const_def_ctx: 0 +CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: arr[p]+input @@ -6458,7 +6298,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = arr, sym->kind = 0 绑定变量: arr -> VarDefContext -CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55c563f85a80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: p [DEBUG] visitUnaryExp: p @@ -6466,7 +6306,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = p, sym->kind = 0 绑定变量: p -> VarDefContext -CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55c563f85130, sym->const_def_ctx: 0 +CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: input @@ -6474,7 +6314,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found input in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = input, sym->kind = 0 绑定变量: input -> VarDefContext -CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55c563f8bdb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: input, sym->kind: 0, sym->var_def_ctx: 0x55db9d840db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: ExpStmt [DEBUG] CheckExp: putfloat(area) @@ -6489,7 +6329,7 @@ SymbolTable::lookup: found putfloat in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found area in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = area, sym->kind = 0 绑定变量: area -> VarDefContext -CheckLValue 绑定变量: area, sym->kind: 0, sym->var_def_ctx: 0x55c563f8c7e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: area, sym->kind: 0, sym->var_def_ctx: 0x55db9d8417e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 2 [DEBUG] visitStmt: ExpStmt @@ -6516,7 +6356,7 @@ SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found area_trunc in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = area_trunc, sym->kind = 0 绑定变量: area_trunc -> VarDefContext -CheckLValue 绑定变量: area_trunc, sym->kind: 0, sym->var_def_ctx: 0x55c563f8d640, sym->const_def_ctx: 0 +CheckLValue 绑定变量: area_trunc, sym->kind: 0, sym->var_def_ctx: 0x55db9d842640, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 2 形参类型 1 [DEBUG] visitStmt: ExpStmt @@ -6534,7 +6374,7 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c563f84b70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55db9d839b70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i*--1e1 [DEBUG] visitUnaryExp: i @@ -6542,7 +6382,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55c563f84b70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55db9d839b70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: --1e1 [DEBUG] visitUnaryExp: -1e1 @@ -6552,7 +6392,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = p, sym->kind = 0 绑定变量: p -> VarDefContext -CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55c563f85130, sym->const_def_ctx: 0 +CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: p+1 [DEBUG] visitUnaryExp: p @@ -6560,7 +6400,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found p in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = p, sym->kind = 0 绑定变量: p -> VarDefContext -CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55c563f85130, sym->const_def_ctx: 0 +CheckLValue 绑定变量: p, sym->kind: 0, sym->var_def_ctx: 0x55db9d83a130, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -6577,7 +6417,7 @@ SymbolTable::lookup: found putfarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = len, sym->kind = 0 绑定变量: len -> VarDefContext -CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x55c563f88510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x55db9d83d510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: arr [DEBUG] visitUnaryExp: arr @@ -6585,7 +6425,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found arr in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = arr, sym->kind = 0 绑定变量: arr -> VarDefContext -CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55c563f85a80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: arr, sym->kind: 0, sym->var_def_ctx: 0x55db9d83aa80, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -6644,14 +6484,14 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55df9f9d00a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55a29de3d0a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b [DEBUG] visitPrimaryExp: b SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55df9f9d4130, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55a29de41130, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 main has_return: 1 return_type_is_void: 0 @@ -6660,6 +6500,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] 运行时库函数声明完成 [DEBUG IRGEN] visitCompUnit [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x55a29de4ce40 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {inta=1;intb=2;returna+b;} [DEBUG IRGEN] visitBlockItem: inta=1; [DEBUG] visitDecl: 开始处理声明 @@ -6669,9 +6512,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 a -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 1 @@ -6679,11 +6519,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x55df9f9db600 -[DEBUG] EvalExpr: success, result = 0x55df9f9db600 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 a,初始值 0x55df9f9db600 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55a29de48600 +[DEBUG] EvalExpr: success, result = 0x55a29de48600 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: intb=2; @@ -6694,9 +6531,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 b -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 2 @@ -6704,17 +6538,13 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x55df9f9da330 -[DEBUG] EvalExpr: success, result = 0x55df9f9da330 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 b,初始值 0x55df9f9da330 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55a29de47330 +[DEBUG] EvalExpr: success, result = 0x55a29de47330 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: returna+b; [DEBUG IRGEN] visitStmt: returna+b; [DEBUG IRGEN] HandleReturnStmt: returna+b; -[DEBUG IRGEN] HandleReturnStmt eval exp: a+b [DEBUG IRGEN] EvalExpr: a+b [DEBUG IRGEN] visitAddExp: a+b [DEBUG IRGEN] visitAddExp: a @@ -6728,8 +6558,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: b -[DEBUG] visitAddExp: left=0x55df9f9e0200, right=0x55df9f9e0310 -[DEBUG] EvalExpr: success, result = 0x55df9f9e03d0 +[DEBUG] visitAddExp: left=0x55a29de4d200, type=int, right=0x55a29de4d310, type=int +[DEBUG] EvalExpr: success, result = 0x55a29de4d3d0 +[DEBUG] visitFuncDef: 函数 main 生成完成 define i32 @getint() { entry: } @@ -6804,30 +6635,30 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: 1024 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: N, ctx: 0x55cd73dd64f0 -SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x55cd73dd64f0 +保存常量定义上下文: N, ctx: 0x562c650374f0 +SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x562c650374f0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x562c650374f0 [DEBUG] 常量符号添加完成 [DEBUG] CheckVarDef: A base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cd73dd64f0 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 [DEBUG] dim[0] = 1024 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cd73dd64f0 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 [DEBUG] dim[1] = 1024 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -6839,21 +6670,21 @@ SymbolTable::addSymbol: stored A with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: B base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cd73dd64f0 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 [DEBUG] dim[0] = 1024 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cd73dd64f0 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 [DEBUG] dim[1] = 1024 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -6865,21 +6696,21 @@ SymbolTable::addSymbol: stored B with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: C base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cd73dd64f0 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 [DEBUG] dim[0] = 1024 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55cd73dd64f0 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x562c650374f0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 [DEBUG] dim[1] = 1024 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -6891,13 +6722,13 @@ SymbolTable::addSymbol: stored C with kind=0, const_def_ctx=0 [DEBUG] 进入函数: mm 返回类型: void SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0 [DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 SymbolTable::addSymbol: stored A with kind=2, const_def_ctx=0 [DEBUG] 添加参数: A type_kind: 3 is_array: 1 dims: 0 1024 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 SymbolTable::addSymbol: stored B with kind=2, const_def_ctx=0 [DEBUG] 添加参数: B type_kind: 3 is_array: 1 dims: 0 1024 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x55cd73dd64f0 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x562c650374f0 SymbolTable::addSymbol: stored C with kind=2, const_def_ctx=0 [DEBUG] 添加参数: C type_kind: 3 is_array: 1 dims: 0 1024 [DEBUG] CheckVarDef: i base_type: int is_array: 0 dim_count: 0 @@ -6913,7 +6744,7 @@ SymbolTable::addSymbol: stored k with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -6922,7 +6753,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -6933,7 +6764,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -6946,7 +6777,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -6957,7 +6788,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -6978,7 +6809,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -6986,7 +6817,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 0 @@ -6996,7 +6827,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -7004,7 +6835,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7012,7 +6843,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -7020,7 +6851,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7028,7 +6859,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7037,7 +6868,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7046,7 +6877,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55cd73de27c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7057,7 +6888,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55cd73de27c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -7070,7 +6901,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7081,7 +6912,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -7104,7 +6935,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: k [DEBUG] visitUnaryExp: k @@ -7112,7 +6943,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55cd73de27c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: 0 @@ -7122,7 +6953,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -7130,7 +6961,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7139,7 +6970,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7150,7 +6981,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -7171,7 +7002,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -7179,7 +7010,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: C[i][j]+A[i][k]*B[k][j] @@ -7196,7 +7027,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -7204,7 +7035,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: A[i][k] @@ -7220,7 +7051,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: k [DEBUG] visitUnaryExp: k @@ -7228,7 +7059,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55cd73de27c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: B[k][j] @@ -7244,7 +7075,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55cd73de27c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -7252,14 +7083,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -7267,7 +7098,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73dddc40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c6503ec40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7275,7 +7106,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -7283,7 +7114,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73ddd550, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c6503e550, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7291,7 +7122,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55cd73de27c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: k+1 [DEBUG] visitUnaryExp: k @@ -7299,7 +7130,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55cd73de27c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x562c650437c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7323,7 +7154,7 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7332,7 +7163,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7343,21 +7174,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7368,21 +7199,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55cd73e0fb40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x562c65070b40, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -7390,7 +7221,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -7398,7 +7229,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: getint() @@ -7410,7 +7241,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -7418,7 +7249,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7426,7 +7257,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -7434,7 +7265,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7442,7 +7273,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7451,7 +7282,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7462,21 +7293,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7487,21 +7318,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55cd73e10cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -7509,7 +7340,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -7517,7 +7348,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: getint() @@ -7529,7 +7360,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -7537,7 +7368,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7545,7 +7376,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -7553,7 +7384,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7567,7 +7398,7 @@ SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7578,7 +7409,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 5 [DEBUG] visitPrimaryExp: 5 @@ -7596,7 +7427,7 @@ SymbolTable::lookup: found mm in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: A [DEBUG] visitUnaryExp: A @@ -7604,7 +7435,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55cd73e0fb40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x562c65070b40, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: B @@ -7613,7 +7444,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55cd73e10cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: C @@ -7622,7 +7453,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55cd73e11c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x562c65072c40, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -7642,7 +7473,7 @@ SymbolTable::lookup: found mm in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: A [DEBUG] visitUnaryExp: A @@ -7650,7 +7481,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55cd73e0fb40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x562c65070b40, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: C @@ -7659,7 +7490,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55cd73e11c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x562c65072c40, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: B @@ -7668,7 +7499,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55cd73e10cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -7679,7 +7510,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -7687,7 +7518,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7701,7 +7532,7 @@ SymbolTable::addSymbol: stored ans with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7712,21 +7543,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -7737,21 +7568,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55cd73e136a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x562c650746a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55cd73e2a5b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x562c6508b5b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: ans+B[i][j] [DEBUG] visitUnaryExp: ans @@ -7759,14 +7590,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55cd73e2a5b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x562c6508b5b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: B[i][j] [DEBUG] visitPrimaryExp: B[i][j] SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55cd73e10cf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x562c65071cf0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -7774,7 +7605,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -7782,14 +7613,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -7797,7 +7628,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55cd73e14820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c65075820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7805,7 +7636,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -7813,7 +7644,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55cd73e145f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c650755f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -7836,7 +7667,7 @@ SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55cd73e2a5b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x562c6508b5b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] visitStmt: ExpStmt @@ -7865,11 +7696,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitCompUnit [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant N -[DEBUG] visitConstDef: scalar constant N [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant N = 1024 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -7878,11 +7705,48 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 A -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 A 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 1048576 -[error] [irgen] 全局数组大小无效 +[DEBUG] HandleGlobalVariable: 创建全局数组: A +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: B +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 B +[DEBUG] HandleGlobalVariable: 变量 B 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 1048576 +[DEBUG] HandleGlobalVariable: 创建全局数组: B +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: C +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 C +[DEBUG] HandleGlobalVariable: 变量 C 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 1048576 +[DEBUG] HandleGlobalVariable: 创建全局数组: C +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG IRGEN] visitFuncDef: mm +[DEBUG] visitFuncDef: 创建函数 mm,返回类型: void,参数数量: 4 +[DEBUG] visitFuncDef: 函数对象地址: 0x562c650a3b70 +[DEBUG] visitFuncDef: 为函数 mm 添加参数 n,类型: int32 +[DEBUG] visitFuncDef: 参数 n 处理完成 +[DEBUG] visitFuncDef: 为函数 mm 添加参数 A,类型: ptr_int32 +[error] [ir] 存储类型不匹配:期望 int32 ========== test/test_case/performance/02_mv3.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -7907,30 +7771,30 @@ SymbolTable::addSymbol: stored x with kind=0, const_def_ctx=0 [DEBUG] visitPrimaryExp: 2010 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: N, ctx: 0x555bc566b620 -SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x555bc566b620 +保存常量定义上下文: N, ctx: 0x559802e25620 +SymbolTable::addSymbol: stored N with kind=3, const_def_ctx=0x559802e25620 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x559802e25620 [DEBUG] 常量符号添加完成 [DEBUG] CheckVarDef: A base_type: int is_array: 1 dim_count: 2 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x555bc566b620 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 [DEBUG] dim[0] = 2010 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x555bc566b620 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 [DEBUG] dim[1] = 2010 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -7942,12 +7806,12 @@ SymbolTable::addSymbol: stored A with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: B base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x555bc566b620 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 [DEBUG] dim[0] = 2010 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -7959,12 +7823,12 @@ SymbolTable::addSymbol: stored B with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: C base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: N [DEBUG] visitPrimaryExp: N -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 CheckLValue: found sym->name = N, sym->kind = 3 绑定常量: N -> ConstDefContext -CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x555bc566b620 +CheckLValue 绑定变量: N, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x559802e25620 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 [DEBUG] dim[0] = 2010 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -7976,7 +7840,7 @@ SymbolTable::addSymbol: stored C with kind=0, const_def_ctx=0 [DEBUG] 进入函数: mv 返回类型: void SymbolTable::addSymbol: stored n with kind=2, const_def_ctx=0 [DEBUG] 添加参数: n type_kind: 1 is_array: 0 dims: -SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x555bc566b620 +SymbolTable::lookup: found N in scope level 1, kind=3, const_def_ctx=0x559802e25620 SymbolTable::addSymbol: stored A with kind=2, const_def_ctx=0 [DEBUG] 添加参数: A type_kind: 3 is_array: 1 dims: 0 2010 SymbolTable::addSymbol: stored b with kind=2, const_def_ctx=0 @@ -7993,7 +7857,7 @@ SymbolTable::addSymbol: stored y with kind=0, const_def_ctx=0 SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = y, sym->kind = 0 绑定变量: y -> VarDefContext -CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x555bc5675a60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x559802e2fa60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8002,7 +7866,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555bc566e960, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 11 [DEBUG] visitUnaryExp: 11 @@ -8017,7 +7881,7 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8028,7 +7892,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -8049,7 +7913,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 0 @@ -8059,7 +7923,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -8067,7 +7931,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8075,7 +7939,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8084,7 +7948,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8095,7 +7959,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -8108,7 +7972,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8119,7 +7983,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -8142,7 +8006,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -8150,7 +8014,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: 0 @@ -8160,7 +8024,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555bc566e960, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: x*b[i]+b[j] [DEBUG] visitUnaryExp: x @@ -8168,7 +8032,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555bc566e960, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: b[i] [DEBUG] visitPrimaryExp: b[i] @@ -8183,7 +8047,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: b[j] @@ -8199,14 +8063,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = y, sym->kind = 0 绑定变量: y -> VarDefContext -CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x555bc5675a60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x559802e2fa60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: y-x [DEBUG] visitUnaryExp: y @@ -8214,14 +8078,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = y, sym->kind = 0 绑定变量: y -> VarDefContext -CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x555bc5675a60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x559802e2fa60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: x [DEBUG] visitPrimaryExp: x SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555bc566e960, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x559802e28960, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt @@ -8236,7 +8100,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: res[i]+A[i][j]*b[j] @@ -8253,7 +8117,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: A[i][j] @@ -8269,7 +8133,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -8277,7 +8141,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: b[j] @@ -8293,14 +8157,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -8308,7 +8172,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc567daa0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e37aa0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8316,7 +8180,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -8324,7 +8188,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc567d820, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e37820, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8348,7 +8212,7 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8359,21 +8223,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3050, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc56a4170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8384,21 +8248,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc56a4170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3050, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x555bc56983e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x559802e523e0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -8406,7 +8270,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -8414,7 +8278,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc56a4170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: getint() @@ -8426,7 +8290,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc56a4170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -8434,7 +8298,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555bc56a4170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x559802e5e170, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8442,7 +8306,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -8450,7 +8314,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8458,7 +8322,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8469,21 +8333,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3050, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x555bc568dce0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x559802e47ce0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -8491,7 +8355,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: getint() @@ -8503,7 +8367,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -8511,7 +8375,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8525,7 +8389,7 @@ SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -8536,7 +8400,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 50 [DEBUG] visitPrimaryExp: 50 @@ -8554,7 +8418,7 @@ SymbolTable::lookup: found mv in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3050, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: A [DEBUG] visitUnaryExp: A @@ -8562,7 +8426,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x555bc56983e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x559802e523e0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: B @@ -8571,7 +8435,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x555bc568dce0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x559802e47ce0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: C @@ -8580,7 +8444,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x555bc56a21c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x559802e5c1c0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -8600,7 +8464,7 @@ SymbolTable::lookup: found mv in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3050, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: A [DEBUG] visitUnaryExp: A @@ -8608,7 +8472,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x555bc56983e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x559802e523e0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: C @@ -8617,7 +8481,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x555bc56a21c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x559802e5c1c0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: B @@ -8626,7 +8490,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x555bc568dce0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x559802e47ce0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -8637,7 +8501,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -8645,7 +8509,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3f40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x559802e5df40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8668,7 +8532,7 @@ SymbolTable::lookup: found putarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x555bc56a3050, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x559802e5d050, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: C [DEBUG] visitUnaryExp: C @@ -8676,7 +8540,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x555bc56a21c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x559802e5c1c0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -8701,22 +8565,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 x -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 x 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: x -[DEBUG] HandleGlobalVariable: 无初始化值 -[DEBUG] HandleGlobalVariable: 使用默认初始化值0 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 x -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant N -[DEBUG] visitConstDef: scalar constant N [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant N = 2010 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -8725,11 +8579,46 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 A -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 A 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 4040100 -[error] [irgen] 全局数组大小无效 +[DEBUG] HandleGlobalVariable: 创建全局数组: A +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: B +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 B +[DEBUG] HandleGlobalVariable: 变量 B 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 2010 +[DEBUG] HandleGlobalVariable: 创建全局数组: B +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: C +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 C +[DEBUG] HandleGlobalVariable: 变量 C 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 2010 +[DEBUG] HandleGlobalVariable: 创建全局数组: C +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG IRGEN] visitFuncDef: mv +[DEBUG] visitFuncDef: 创建函数 mv,返回类型: void,参数数量: 4 +[DEBUG] visitFuncDef: 函数对象地址: 0x559802e7db20 +[DEBUG] visitFuncDef: 为函数 mv 添加参数 n,类型: int32 +[DEBUG] visitFuncDef: 参数 n 处理完成 +[DEBUG] visitFuncDef: 为函数 mv 添加参数 A,类型: ptr_int32 +[error] [ir] 存储类型不匹配:期望 int32 ========== test/test_case/performance/03_sort1.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -8753,11 +8642,11 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: 16 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: base, ctx: 0x5575a082e830 -SymbolTable::addSymbol: stored base with kind=3, const_def_ctx=0x5575a082e830 +保存常量定义上下文: base, ctx: 0x563bb8523830 +SymbolTable::addSymbol: stored base with kind=3, const_def_ctx=0x563bb8523830 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x563bb8523830 [DEBUG] 常量符号添加完成 [DEBUG] CheckVarDef: a base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: 30000010 @@ -8796,7 +8685,7 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a083b850, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -8819,7 +8708,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a083b850, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: ret @@ -8827,13 +8716,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ret in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ret, sym->kind = 0 绑定变量: ret -> VarDefContext -CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x5575a083a770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x563bb852f770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found ret in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ret, sym->kind = 0 绑定变量: ret -> VarDefContext -CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x5575a083a770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x563bb852f770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: arr[i] [DEBUG] visitUnaryExp: arr[i] @@ -8849,14 +8738,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a083b850, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a083b850, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -8864,7 +8753,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a083b850, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8530850, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8878,7 +8767,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ret in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ret, sym->kind = 0 绑定变量: ret -> VarDefContext -CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x5575a083a770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ret, sym->kind: 0, sym->var_def_ctx: 0x563bb852f770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 getMaxNum has_return: 1 return_type_is_void: 0 @@ -8905,7 +8794,7 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0853ae0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8548ae0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: pos [DEBUG] visitPrimaryExp: pos @@ -8928,16 +8817,16 @@ CheckLValue 绑定变量: num, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0853ae0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8548ae0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -8945,7 +8834,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0853ae0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8548ae0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -8962,10 +8851,10 @@ CheckLValue 绑定变量: num, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 getNumPos has_return: 1 return_type_is_void: 0 @@ -8981,12 +8870,12 @@ SymbolTable::addSymbol: stored r with kind=2, const_def_ctx=0 [DEBUG] CheckVarDef: head base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 [DEBUG] dim[0] = 16 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -8998,12 +8887,12 @@ SymbolTable::addSymbol: stored head with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: tail base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 [DEBUG] dim[0] = 16 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -9015,12 +8904,12 @@ SymbolTable::addSymbol: stored tail with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: cnt base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 [DEBUG] dim[0] = 16 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -9075,7 +8964,7 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: r [DEBUG] visitPrimaryExp: r @@ -9088,7 +8977,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cnt, sym->kind = 0 绑定变量: cnt -> VarDefContext -CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x5575a085d9f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: getNumPos(a[i],bitround) [DEBUG] visitUnaryExp: getNumPos(a[i],bitround) @@ -9110,7 +8999,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: bitround @@ -9129,7 +9018,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cnt, sym->kind = 0 绑定变量: cnt -> VarDefContext -CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x5575a085d9f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: getNumPos(a[i],bitround) [DEBUG] visitUnaryExp: getNumPos(a[i],bitround) @@ -9151,7 +9040,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: bitround @@ -9170,7 +9059,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -9178,7 +9067,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -9186,7 +9075,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9203,7 +9092,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9221,7 +9110,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cnt, sym->kind = 0 绑定变量: cnt -> VarDefContext -CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x5575a085d9f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9231,7 +9120,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -9242,21 +9131,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9264,7 +9153,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: tail[i-1] @@ -9273,7 +9162,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i-1 [DEBUG] visitUnaryExp: i @@ -9281,7 +9170,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -9290,7 +9179,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9298,7 +9187,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: head[i]+cnt[i] @@ -9307,7 +9196,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9315,7 +9204,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: cnt[i] @@ -9323,7 +9212,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cnt, sym->kind = 0 绑定变量: cnt -> VarDefContext -CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x5575a085d9f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9331,14 +9220,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -9346,7 +9235,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -9354,7 +9243,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9365,14 +9254,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: While @@ -9381,7 +9270,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9389,7 +9278,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: tail[i] @@ -9397,7 +9286,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9405,7 +9294,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Block @@ -9424,7 +9313,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9432,7 +9321,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 完全索引,返回元素类型 @@ -9450,7 +9339,7 @@ SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = v, sym->kind = 0 绑定变量: v -> VarDefContext -CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x5575a087ef10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: bitround [DEBUG] visitUnaryExp: bitround @@ -9466,7 +9355,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: t base_type: int is_array: 0 dim_count: 0 @@ -9476,7 +9365,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = v, sym->kind = 0 绑定变量: v -> VarDefContext -CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x5575a087ef10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 SymbolTable::addSymbol: stored t with kind=0, const_def_ctx=0 [DEBUG] 符号添加完成: t type_kind: 1 is_array: 0 @@ -9484,7 +9373,7 @@ SymbolTable::addSymbol: stored t with kind=0, const_def_ctx=0 SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = v, sym->kind = 0 绑定变量: v -> VarDefContext -CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x5575a087ef10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: a[head[getNumPos(t,bitround)]] [DEBUG] visitUnaryExp: a[head[getNumPos(t,bitround)]] @@ -9500,7 +9389,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: getNumPos(t,bitround) [DEBUG] visitUnaryExp: getNumPos(t,bitround) @@ -9514,7 +9403,7 @@ SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = t, sym->kind = 0 绑定变量: t -> VarDefContext -CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x5575a08827f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: bitround [DEBUG] visitUnaryExp: bitround @@ -9539,7 +9428,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: getNumPos(t,bitround) [DEBUG] visitUnaryExp: getNumPos(t,bitround) @@ -9553,7 +9442,7 @@ SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = t, sym->kind = 0 绑定变量: t -> VarDefContext -CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x5575a08827f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: bitround [DEBUG] visitUnaryExp: bitround @@ -9572,13 +9461,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = t, sym->kind = 0 绑定变量: t -> VarDefContext -CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x5575a08827f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: getNumPos(t,bitround) [DEBUG] visitUnaryExp: getNumPos(t,bitround) @@ -9592,7 +9481,7 @@ SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = t, sym->kind = 0 绑定变量: t -> VarDefContext -CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x5575a08827f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: bitround [DEBUG] visitUnaryExp: bitround @@ -9610,7 +9499,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: getNumPos(t,bitround) [DEBUG] visitUnaryExp: getNumPos(t,bitround) @@ -9624,7 +9513,7 @@ SymbolTable::lookup: found getNumPos in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found t in scope level 7, kind=0, const_def_ctx=0 CheckLValue: found sym->name = t, sym->kind = 0 绑定变量: t -> VarDefContext -CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x5575a08827f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: t, sym->kind: 0, sym->var_def_ctx: 0x563bb85777f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: bitround [DEBUG] visitUnaryExp: bitround @@ -9650,7 +9539,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9658,7 +9547,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 完全索引,返回元素类型 @@ -9668,13 +9557,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found v in scope level 6, kind=0, const_def_ctx=0 CheckLValue: found sym->name = v, sym->kind = 0 绑定变量: v -> VarDefContext -CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x5575a087ef10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: v, sym->kind: 0, sym->var_def_ctx: 0x563bb8573f10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9682,7 +9571,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: head[i]+1 @@ -9691,7 +9580,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9699,7 +9588,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: 1 @@ -9708,7 +9597,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -9716,7 +9605,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0863eb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb8558eb0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -9735,7 +9624,7 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9752,7 +9641,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9770,7 +9659,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cnt, sym->kind = 0 绑定变量: cnt -> VarDefContext -CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x5575a085d9f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9780,7 +9669,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -9791,14 +9680,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: base [DEBUG] visitPrimaryExp: base -SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x5575a082e830 +SymbolTable::lookup: found base in scope level 1, kind=3, const_def_ctx=0x563bb8523830 CheckLValue: found sym->name = base, sym->kind = 3 绑定常量: base -> ConstDefContext -CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5575a082e830 +CheckLValue 绑定变量: base, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x563bb8523830 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -9807,7 +9696,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 0 [DEBUG] visitPrimaryExp: 0 @@ -9816,7 +9705,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9824,7 +9713,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: tail[i-1] @@ -9833,7 +9722,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i-1 [DEBUG] visitUnaryExp: i @@ -9841,7 +9730,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -9850,7 +9739,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9858,7 +9747,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: head[i]+cnt[i] @@ -9867,7 +9756,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9875,7 +9764,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: cnt[i] @@ -9883,7 +9772,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cnt in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cnt, sym->kind = 0 绑定变量: cnt -> VarDefContext -CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x5575a085d9f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cnt, sym->kind: 0, sym->var_def_ctx: 0x563bb85529f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9891,7 +9780,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: ExpStmt @@ -9925,7 +9814,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found head in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = head, sym->kind = 0 绑定变量: head -> VarDefContext -CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x5575a085b700, sym->const_def_ctx: 0 +CheckLValue 绑定变量: head, sym->kind: 0, sym->var_def_ctx: 0x563bb8550700, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9933,7 +9822,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: tail[i] @@ -9942,7 +9831,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found tail in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = tail, sym->kind = 0 绑定变量: tail -> VarDefContext -CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x5575a085ccb0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: tail, sym->kind: 0, sym->var_def_ctx: 0x563bb8551cb0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -9950,7 +9839,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -9961,7 +9850,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -9969,7 +9858,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a0895b20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb858ab20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -9993,7 +9882,7 @@ SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5575a0879320, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x563bb856e320, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -10021,7 +9910,7 @@ SymbolTable::lookup: found radixSort in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5575a0879320, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x563bb856e320, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: 0 @@ -10033,7 +9922,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5575a08a42d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x563bb85992d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 3 形参类型 3 @@ -10051,21 +9940,21 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a08a6f60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5575a08a42d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x563bb85992d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5575a08a3770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: ans+i*(a[i]%(2+i)) [DEBUG] visitUnaryExp: ans @@ -10073,14 +9962,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5575a08a3770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: i [DEBUG] visitPrimaryExp: i SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a08a6f60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: (a[i]%(2+i)) [DEBUG] visitPrimaryExp: (a[i]%(2+i)) @@ -10090,7 +9979,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5575a0879320, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x563bb856e320, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10098,7 +9987,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a08a6f60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: (2+i) @@ -10111,13 +10000,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a08a6f60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a08a6f60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -10125,7 +10014,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5575a08a6f60, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563bb859bf60, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10135,7 +10024,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5575a08a3770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 0 [DEBUG] visitPrimaryExp: 0 @@ -10143,7 +10032,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5575a08a3770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: -ans [DEBUG] visitUnaryExp: -ans @@ -10152,7 +10041,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5575a08a3770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: ExpStmt [DEBUG] CheckExp: stoptime() @@ -10173,7 +10062,7 @@ SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found ans in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5575a08a3770, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x563bb8598770, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] visitStmt: ExpStmt @@ -10202,11 +10091,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitCompUnit [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant base -[DEBUG] visitConstDef: scalar constant base [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant base = 16 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -10215,10 +10100,29 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 a -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 30000010 -[error] [irgen] 全局数组大小无效 +[DEBUG] HandleGlobalVariable: 创建全局数组: a +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: ans +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 ans +[DEBUG] HandleGlobalVariable: 变量 ans 是 int 类型 +[DEBUG] HandleGlobalVariable: 创建全局标量变量: ans +[DEBUG] visitDecl: 声明处理完成 +[DEBUG IRGEN] visitFuncDef: getMaxNum +[DEBUG] visitFuncDef: 创建函数 getMaxNum,返回类型: int,参数数量: 2 +[DEBUG] visitFuncDef: 函数对象地址: 0x563bb85b5b10 +[DEBUG] visitFuncDef: 为函数 getMaxNum 添加参数 n,类型: int32 +[DEBUG] visitFuncDef: 参数 n 处理完成 +[DEBUG] visitFuncDef: 为函数 getMaxNum 添加参数 arr,类型: ptr_int32 +[error] [ir] 存储类型不匹配:期望 int32 ========== test/test_case/performance/2025-MYO-20.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -10305,14 +10209,14 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -10321,14 +10225,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -10346,7 +10250,7 @@ SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a23a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10354,7 +10258,7 @@ dim_count: 2, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 部分索引,返回指针类型 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -10362,7 +10266,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -10370,7 +10274,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10378,7 +10282,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -10389,14 +10293,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -10405,14 +10309,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -10430,7 +10334,7 @@ SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a7ce0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55f614509ce0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10438,7 +10342,7 @@ dim_count: 2, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 部分索引,返回指针类型 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -10446,7 +10350,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -10454,7 +10358,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10468,7 +10372,7 @@ SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -10479,14 +10383,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -10495,14 +10399,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -10519,21 +10423,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ccb70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a23a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10541,7 +10445,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -10549,7 +10453,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ccb70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: -1 @@ -10560,7 +10464,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ccb70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -10568,7 +10472,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ccb70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61452eb70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10576,7 +10480,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -10584,7 +10488,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10592,7 +10496,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -10603,14 +10507,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -10619,14 +10523,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -10643,21 +10547,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d7040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a7ce0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55f614509ce0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10665,7 +10569,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -10673,7 +10577,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d7040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: -1 @@ -10684,7 +10588,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d7040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -10692,7 +10596,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d7040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614539040, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10700,7 +10604,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -10708,7 +10612,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10716,7 +10620,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -10727,14 +10631,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0 @@ -10749,21 +10653,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6dcaf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a5ad0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10771,7 +10675,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -10779,7 +10683,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6dcaf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: A[i][j]*2+B[i][j]*3 @@ -10788,7 +10692,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a23a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10796,7 +10700,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -10804,7 +10708,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6dcaf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: 2 @@ -10814,7 +10718,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found B in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = B, sym->kind = 0 绑定变量: B -> VarDefContext -CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a7ce0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: B, sym->kind: 0, sym->var_def_ctx: 0x55f614509ce0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10822,7 +10726,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -10830,7 +10734,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6dcaf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: 3 @@ -10839,7 +10743,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6dcaf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -10847,7 +10751,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6dcaf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f61453eaf0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10855,7 +10759,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -10863,7 +10767,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -10871,7 +10775,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -10882,14 +10786,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0 @@ -10904,14 +10808,14 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6e58e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: val base_type: int is_array: 0 dim_count: 0 @@ -10921,7 +10825,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a5ad0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10929,7 +10833,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -10937,7 +10841,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6e58e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 SymbolTable::addSymbol: stored val with kind=0, const_def_ctx=0 @@ -10946,7 +10850,7 @@ SymbolTable::addSymbol: stored val with kind=0, const_def_ctx=0 SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = val, sym->kind = 0 绑定变量: val -> VarDefContext -CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d32f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: val*val+7 [DEBUG] visitUnaryExp: val @@ -10954,14 +10858,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = val, sym->kind = 0 绑定变量: val -> VarDefContext -CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d32f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: val [DEBUG] visitPrimaryExp: val SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = val, sym->kind = 0 绑定变量: val -> VarDefContext -CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d32f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 7 [DEBUG] visitPrimaryExp: 7 @@ -10969,7 +10873,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = val, sym->kind = 0 绑定变量: val -> VarDefContext -CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d32f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: val/3 [DEBUG] visitUnaryExp: val @@ -10977,7 +10881,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = val, sym->kind = 0 绑定变量: val -> VarDefContext -CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d32f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 3 [DEBUG] visitPrimaryExp: 3 @@ -10985,7 +10889,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a5ad0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -10993,7 +10897,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -11001,7 +10905,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6e58e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: val @@ -11010,13 +10914,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found val in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = val, sym->kind = 0 绑定变量: val -> VarDefContext -CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6d32f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: val, sym->kind: 0, sym->var_def_ctx: 0x55f6145352f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6e58e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -11024,7 +10928,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6e58e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f6145478e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11032,7 +10936,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -11040,7 +10944,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11048,7 +10952,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -11059,14 +10963,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0 @@ -11081,14 +10985,14 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f0e10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: k base_type: int is_array: 0 dim_count: 0 @@ -11109,21 +11013,21 @@ SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f28f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found sum in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f3280, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55f614555280, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: sum+C[i][k]*A[k][j] [DEBUG] visitUnaryExp: sum @@ -11131,14 +11035,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f3280, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55f614555280, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: C[i][k] [DEBUG] visitPrimaryExp: C[i][k] SymbolTable::lookup: found C in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = C, sym->kind = 0 绑定变量: C -> VarDefContext -CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a5ad0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: C, sym->kind: 0, sym->var_def_ctx: 0x55f614507ad0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -11146,7 +11050,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: k [DEBUG] visitUnaryExp: k @@ -11154,7 +11058,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f28f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: A[k][j] @@ -11162,7 +11066,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a23a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: k [DEBUG] visitUnaryExp: k @@ -11170,7 +11074,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f28f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -11178,14 +11082,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f0e10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f28f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: k+1 [DEBUG] visitUnaryExp: k @@ -11193,7 +11097,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found k in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = k, sym->kind = 0 绑定变量: k -> VarDefContext -CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f28f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: k, sym->kind: 0, sym->var_def_ctx: 0x55f6145548f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11201,7 +11105,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a23a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -11209,7 +11113,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -11217,7 +11121,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f0e10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: sum @@ -11226,13 +11130,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f3280, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55f614555280, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f0e10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -11240,7 +11144,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6f0e10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614552e10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11248,7 +11152,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -11256,7 +11160,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11278,21 +11182,21 @@ SymbolTable::addSymbol: stored r with kind=0, const_def_ctx=0 SymbolTable::lookup: found r in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = r, sym->kind = 0 绑定变量: r -> VarDefContext -CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fb2e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55f61455d2e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: R [DEBUG] visitPrimaryExp: R SymbolTable::lookup: found R in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = R, sym->kind = 0 绑定变量: R -> VarDefContext -CheckLValue 绑定变量: R, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6af4b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: R, sym->kind: 0, sym->var_def_ctx: 0x55f6145114b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -11303,14 +11207,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: j base_type: int is_array: 0 dim_count: 0 @@ -11325,21 +11229,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fe150, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: T [DEBUG] visitPrimaryExp: T SymbolTable::lookup: found T in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = T, sym->kind = 0 绑定变量: T -> VarDefContext -CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6ac4c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: T, sym->kind: 0, sym->var_def_ctx: 0x55f61450e4c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = total, sym->kind = 0 绑定变量: total -> VarDefContext -CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fa6c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55f61455c6c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: total+A[i][j]*A[i][j] [DEBUG] visitUnaryExp: total @@ -11347,14 +11251,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = total, sym->kind = 0 绑定变量: total -> VarDefContext -CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fa6c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55f61455c6c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: A[i][j] [DEBUG] visitPrimaryExp: A[i][j] SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a23a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -11362,7 +11266,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -11370,7 +11274,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fe150, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: A[i][j] @@ -11378,7 +11282,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found A in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = A, sym->kind = 0 绑定变量: A -> VarDefContext -CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6a23a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: A, sym->kind: 0, sym->var_def_ctx: 0x55f6145043a0, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -11386,7 +11290,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -11394,14 +11298,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fe150, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fe150, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -11409,7 +11313,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fe150, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55f614560150, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11417,7 +11321,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -11425,7 +11329,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6afde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55f614511de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11433,7 +11337,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found r in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = r, sym->kind = 0 绑定变量: r -> VarDefContext -CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fb2e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55f61455d2e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: r+1 [DEBUG] visitUnaryExp: r @@ -11441,7 +11345,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found r in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = r, sym->kind = 0 绑定变量: r -> VarDefContext -CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fb2e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: r, sym->kind: 0, sym->var_def_ctx: 0x55f61455d2e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -11464,7 +11368,7 @@ SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = total, sym->kind = 0 绑定变量: total -> VarDefContext -CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55b7bc6fa6c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x55f61455c6c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] visitStmt: ExpStmt @@ -11498,11 +11402,179 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 A -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 A 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 1048576 -[error] [irgen] 全局数组大小无效 +[DEBUG] HandleGlobalVariable: 创建全局数组: A +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: B +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 B +[DEBUG] HandleGlobalVariable: 变量 B 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 1048576 +[DEBUG] HandleGlobalVariable: 创建全局数组: B +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: C +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 C +[DEBUG] HandleGlobalVariable: 变量 C 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 1048576 +[DEBUG] HandleGlobalVariable: 创建全局数组: C +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x55f61457c340 +[DEBUG] visitFuncDef: 开始生成函数体 +[DEBUG IRGEN] visitBlock: {intT=getint();intR=getint();inti=0;while(i=T/2){getarray(B[i]);}i=i+1;}starttime();i=0;while(i=T/2){intj=0;while(j then, merge +[DEBUG IF] Generating then branch in block: then +[DEBUG IRGEN] visitStmt: {getarray(A[i]);} +[DEBUG IRGEN] visitBlock: {getarray(A[i]);} +[DEBUG IRGEN] visitBlockItem: getarray(A[i]); +[DEBUG IRGEN] visitStmt: getarray(A[i]); +[DEBUG IRGEN] EvalExpr: getarray(A[i]) +[DEBUG IRGEN] visitAddExp: getarray(A[i]) +[DEBUG IRGEN] visitMulExp: getarray(A[i]) +[DEBUG IRGEN] visitCallExp: 调用函数 getarray +[DEBUG IRGEN] EvalExpr: A[i] +[DEBUG IRGEN] visitAddExp: A[i] +[DEBUG IRGEN] visitMulExp: A[i] +[DEBUG IRGEN] visitPrimaryExp: A[i] +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: A +[DEBUG IRGEN] EvalExpr: i +[DEBUG IRGEN] visitAddExp: i +[DEBUG IRGEN] visitMulExp: i +[DEBUG IRGEN] visitPrimaryExp: i +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: i +[DEBUG] EvalExpr: success, result = 0x55f614d7df50 +[ERROR] Exception in EvalExpr: [ir] LoadInst 当前只支持从 i32* 加载 +[ERROR] Exception in EvalExpr: [ir] LoadInst 当前只支持从 i32* 加载 +[error] [ir] LoadInst 当前只支持从 i32* 加载 ========== test/test_case/performance/fft0.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -11527,11 +11599,11 @@ SymbolTable::addSymbol: stored main with kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp: 998244353 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: mod, ctx: 0x5650e092ece0 -SymbolTable::addSymbol: stored mod with kind=3, const_def_ctx=0x5650e092ece0 +保存常量定义上下文: mod, ctx: 0x55dd44ad2ce0 +SymbolTable::addSymbol: stored mod with kind=3, const_def_ctx=0x55dd44ad2ce0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55dd44ad2ce0 [DEBUG] 常量符号添加完成 [DEBUG] CheckVarDef: d base_type: int is_array: 0 dim_count: 0 SymbolTable::addSymbol: stored d with kind=0, const_def_ctx=0 @@ -11541,21 +11613,21 @@ SymbolTable::addSymbol: stored d with kind=0, const_def_ctx=0 [DEBUG] visitPrimaryExp: 2097152 [DEBUG] 初始化值数量: 1 CheckConstDef: before addSymbol, sym.kind = 3 -保存常量定义上下文: maxlen, ctx: 0x5650e095f5a0 -SymbolTable::addSymbol: stored maxlen with kind=3, const_def_ctx=0x5650e095f5a0 +保存常量定义上下文: maxlen, ctx: 0x55dd44b035a0 +SymbolTable::addSymbol: stored maxlen with kind=3, const_def_ctx=0x55dd44b035a0 CheckConstDef: after addSymbol, sym.kind = 3 -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 -CheckConstDef: after addSymbol, stored const_def_ctx = 0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 +CheckConstDef: after addSymbol, stored const_def_ctx = 0x55dd44b035a0 [DEBUG] 常量符号添加完成 [DEBUG] CheckVarDef: temp base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: maxlen [DEBUG] visitPrimaryExp: maxlen -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 CheckLValue: found sym->name = maxlen, sym->kind = 3 绑定常量: maxlen -> ConstDefContext -CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e095f5a0 +CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 [DEBUG] dim[0] = 2097152 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -11567,12 +11639,12 @@ SymbolTable::addSymbol: stored temp with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: a base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: maxlen [DEBUG] visitPrimaryExp: maxlen -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 CheckLValue: found sym->name = maxlen, sym->kind = 3 绑定常量: maxlen -> ConstDefContext -CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e095f5a0 +CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 [DEBUG] dim[0] = 2097152 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -11584,12 +11656,12 @@ SymbolTable::addSymbol: stored a with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: b base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: maxlen [DEBUG] visitPrimaryExp: maxlen -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 CheckLValue: found sym->name = maxlen, sym->kind = 3 绑定常量: maxlen -> ConstDefContext -CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e095f5a0 +CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 [DEBUG] dim[0] = 2097152 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -11601,12 +11673,12 @@ SymbolTable::addSymbol: stored b with kind=0, const_def_ctx=0 [DEBUG] CheckVarDef: c base_type: int is_array: 1 dim_count: 1 [DEBUG] visitUnaryExp: maxlen [DEBUG] visitPrimaryExp: maxlen -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 CheckLValue: found sym->name = maxlen, sym->kind = 3 绑定常量: maxlen -> ConstDefContext -CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e095f5a0 +CheckLValue 绑定变量: maxlen, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44b035a0 dim_count: 0, subscript_count: 0 -SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x5650e095f5a0 +SymbolTable::lookup: found maxlen in scope level 1, kind=3, const_def_ctx=0x55dd44b035a0 [DEBUG] dim[0] = 2097152 [DEBUG] 创建数组类型完成 [DEBUG] type->IsArray(): 1 @@ -11659,10 +11731,10 @@ CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_c dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] CheckVarDef: cur base_type: int is_array: 0 dim_count: 0 @@ -11696,7 +11768,7 @@ SymbolTable::addSymbol: stored cur with kind=0, const_def_ctx=0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e094a740, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: (cur+cur)%mod [DEBUG] visitUnaryExp: (cur+cur) @@ -11707,21 +11779,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e094a740, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: cur [DEBUG] visitPrimaryExp: cur SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e094a740, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: If [DEBUG] visitUnaryExp: b @@ -11747,7 +11819,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e094a740, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: a [DEBUG] visitPrimaryExp: a @@ -11757,10 +11829,10 @@ CheckLValue 绑定变量: a, sym->kind: 2, sym->var_def_ctx: 0, sym->const_def_c dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] visitStmt: Return ExpStmt @@ -11773,7 +11845,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e094a740, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44aee740, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 multiply has_return: 1 return_type_is_void: 0 @@ -11830,7 +11902,7 @@ SymbolTable::addSymbol: stored cur with kind=0, const_def_ctx=0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e0959bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: multiply(cur,cur) [DEBUG] visitUnaryExp: multiply(cur,cur) @@ -11844,7 +11916,7 @@ SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e0959bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: cur [DEBUG] visitUnaryExp: cur @@ -11852,7 +11924,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e0959bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 @@ -11883,7 +11955,7 @@ SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e0959bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: a [DEBUG] visitUnaryExp: a @@ -11905,7 +11977,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found cur in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = cur, sym->kind = 0 绑定变量: cur -> VarDefContext -CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x5650e0959bc0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: cur, sym->kind: 0, sym->var_def_ctx: 0x55dd44afdbc0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 power has_return: 1 return_type_is_void: 0 @@ -11930,7 +12002,7 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e0965db0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: len [DEBUG] visitPrimaryExp: len @@ -11957,7 +12029,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e0965db0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: src[i] @@ -11974,14 +12046,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e0965db0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e0965db0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -11989,7 +12061,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e0965db0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12003,7 +12075,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e0965db0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b09db0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 memmove has_return: 1 return_type_is_void: 0 @@ -12045,7 +12117,7 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -12060,7 +12132,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -12070,7 +12142,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5650e095f7d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55dd44b037d0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i/2 [DEBUG] visitUnaryExp: i @@ -12078,7 +12150,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -12097,7 +12169,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: begin_pos [DEBUG] visitPrimaryExp: begin_pos @@ -12110,7 +12182,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5650e095f7d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55dd44b037d0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: n/2+i/2 [DEBUG] visitUnaryExp: n @@ -12126,7 +12198,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -12145,7 +12217,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: begin_pos [DEBUG] visitPrimaryExp: begin_pos @@ -12158,7 +12230,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -12166,7 +12238,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12199,7 +12271,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5650e095f7d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55dd44b037d0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: n @@ -12341,7 +12413,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -12358,7 +12430,7 @@ SymbolTable::addSymbol: stored wn with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -12390,7 +12462,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 SymbolTable::addSymbol: stored x with kind=0, const_def_ctx=0 @@ -12416,7 +12488,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -12447,7 +12519,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: (x+multiply(wn,y))%mod @@ -12459,7 +12531,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found x in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x5650e0988e80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2ce80, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: multiply(wn,y) [DEBUG] 函数调用: multiply @@ -12472,7 +12544,7 @@ SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = wn, sym->kind = 0 绑定变量: wn -> VarDefContext -CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x5650e09872a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: y [DEBUG] visitUnaryExp: y @@ -12480,16 +12552,16 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found y in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = y, sym->kind = 0 绑定变量: y -> VarDefContext -CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x5650e098a230, sym->const_def_ctx: 0 +CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2e230, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found arr in scope level 2, kind=2, const_def_ctx=0 @@ -12509,7 +12581,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -12529,7 +12601,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found x in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x5650e0988e80, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2ce80, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: multiply(wn,y) [DEBUG] 函数调用: multiply @@ -12542,7 +12614,7 @@ SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = wn, sym->kind = 0 绑定变量: wn -> VarDefContext -CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x5650e09872a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: y [DEBUG] visitUnaryExp: y @@ -12550,29 +12622,29 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found y in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = y, sym->kind = 0 绑定变量: y -> VarDefContext -CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x5650e098a230, sym->const_def_ctx: 0 +CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2e230, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = wn, sym->kind = 0 绑定变量: wn -> VarDefContext -CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x5650e09872a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: multiply(wn,w) [DEBUG] visitUnaryExp: multiply(wn,w) @@ -12586,7 +12658,7 @@ SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found wn in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = wn, sym->kind = 0 绑定变量: wn -> VarDefContext -CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x5650e09872a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: wn, sym->kind: 0, sym->var_def_ctx: 0x55dd44b2b2a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: w [DEBUG] visitUnaryExp: w @@ -12601,7 +12673,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -12609,7 +12681,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e09738f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b178f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12636,7 +12708,7 @@ SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -12655,7 +12727,7 @@ SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5650e09628e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55dd44b068e0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -12671,7 +12743,7 @@ SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -12682,21 +12754,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5650e09944b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55dd44b384b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: m [DEBUG] visitPrimaryExp: m SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x5650e0995380, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x55dd44b39380, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12705,7 +12777,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: d*2 [DEBUG] visitUnaryExp: d @@ -12713,7 +12785,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -12730,7 +12802,7 @@ SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: 0 @@ -12742,7 +12814,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: power(3,(mod-1)/d) [DEBUG] visitUnaryExp: power(3,(mod-1)/d) @@ -12759,10 +12831,10 @@ SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: mod-1 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12771,7 +12843,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 @@ -12792,7 +12864,7 @@ SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5650e09628e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55dd44b068e0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: 0 @@ -12804,7 +12876,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: power(3,(mod-1)/d) [DEBUG] visitUnaryExp: power(3,(mod-1)/d) @@ -12821,10 +12893,10 @@ SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: mod-1 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12833,7 +12905,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 @@ -12853,21 +12925,21 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: d [DEBUG] visitPrimaryExp: d SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -12875,7 +12947,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: multiply(a[i],b[i]) @@ -12890,7 +12962,7 @@ SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -12898,7 +12970,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: b[i] @@ -12907,7 +12979,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x5650e09628e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x55dd44b068e0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -12915,7 +12987,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -12924,7 +12996,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -12932,7 +13004,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12949,7 +13021,7 @@ SymbolTable::lookup: found fft in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: 0 @@ -12961,7 +13033,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: power(3,mod-1-(mod-1)/d) [DEBUG] visitUnaryExp: power(3,mod-1-(mod-1)/d) @@ -12975,10 +13047,10 @@ SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0 [DEBUG] CheckExp: mod-1-(mod-1)/d [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12987,10 +13059,10 @@ dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: mod-1 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -12999,7 +13071,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 @@ -13011,7 +13083,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -13022,21 +13094,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: d [DEBUG] visitPrimaryExp: d SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -13044,7 +13116,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: multiply(a[i],power(d,mod-2)) @@ -13059,7 +13131,7 @@ SymbolTable::lookup: found multiply in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -13067,7 +13139,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: power(d,mod-2) @@ -13082,15 +13154,15 @@ SymbolTable::lookup: found power in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found d in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = d, sym->kind = 0 绑定变量: d -> VarDefContext -CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x5650e09343b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: d, sym->kind: 0, sym->var_def_ctx: 0x55dd44ad83b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: mod-2 [DEBUG] visitUnaryExp: mod [DEBUG] visitPrimaryExp: mod -SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x5650e092ece0 +SymbolTable::lookup: found mod in scope level 1, kind=3, const_def_ctx=0x55dd44ad2ce0 CheckLValue: found sym->name = mod, sym->kind = 3 绑定常量: mod -> ConstDefContext -CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x5650e092ece0 +CheckLValue 绑定变量: mod, sym->kind: 3, sym->var_def_ctx: 0, sym->const_def_ctx: 0x55dd44ad2ce0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -13102,7 +13174,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -13110,7 +13182,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5650e099fdf0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55dd44b43df0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13133,14 +13205,14 @@ SymbolTable::lookup: found putarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5650e09944b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55dd44b384b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: m [DEBUG] visitPrimaryExp: m SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x5650e0995380, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x55dd44b39380, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13150,7 +13222,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x5650e0962040, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55dd44b06040, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -13170,11 +13242,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitCompUnit [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant mod -[DEBUG] visitConstDef: scalar constant mod [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant mod = 998244353 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -13183,22 +13251,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 d -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 d 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: d -[DEBUG] HandleGlobalVariable: 无初始化值 -[DEBUG] HandleGlobalVariable: 使用默认初始化值0 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 d -[DEBUG] HandleGlobalVariable: 全局变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理常量声明 -[DEBUG] visitConstDef: processing constant maxlen -[DEBUG] visitConstDef: scalar constant maxlen [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] visitConstDef: constant maxlen = 2097152 -[DEBUG] visitConstDef: scalar constant stored, no alloca created [DEBUG] visitDecl: 声明处理完成 [DEBUG] visitDecl: 开始处理声明 [DEBUG] visitDecl: 处理变量声明 @@ -13207,10 +13265,287 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 temp -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 temp 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 2097152 -[error] [irgen] 全局数组大小无效 +[DEBUG] HandleGlobalVariable: 创建全局数组: temp +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: a +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 a +[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 2097152 +[DEBUG] HandleGlobalVariable: 创建全局数组: a +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: b +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 b +[DEBUG] HandleGlobalVariable: 变量 b 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 2097152 +[DEBUG] HandleGlobalVariable: 创建全局数组: b +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: c +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 c +[DEBUG] HandleGlobalVariable: 变量 c 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 2097152 +[DEBUG] HandleGlobalVariable: 创建全局数组: c +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG IRGEN] visitFuncDef: multiply +[DEBUG] visitFuncDef: 创建函数 multiply,返回类型: int,参数数量: 2 +[DEBUG] visitFuncDef: 函数对象地址: 0x55dd45b6b150 +[DEBUG] visitFuncDef: 为函数 multiply 添加参数 a,类型: int32 +[DEBUG] visitFuncDef: 参数 a 处理完成 +[DEBUG] visitFuncDef: 为函数 multiply 添加参数 b,类型: int32 +[DEBUG] visitFuncDef: 参数 b 处理完成 +[DEBUG] visitFuncDef: 开始生成函数体 +[DEBUG IRGEN] visitBlock: {if(b==0)return0;if(b==1)returna%mod;intcur=multiply(a,b/2);cur=(cur+cur)%mod;if(b%2==1)return(cur+a)%mod;elsereturncur;} +[DEBUG IRGEN] visitBlockItem: if(b==0)return0; +[DEBUG IRGEN] visitStmt: if(b==0)return0; +[DEBUG IRGEN] HandleIfStmt: if(b==0)return0; +[DEBUG IF] thenBlock: then +[DEBUG IF] mergeBlock: merge +[DEBUG IF] current insert block before cond: entry +[DEBUG IRGEN] visitAddExp: b +[DEBUG IRGEN] visitMulExp: b +[DEBUG IRGEN] visitPrimaryExp: b +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: b +[DEBUG IRGEN] visitAddExp: 0 +[DEBUG IRGEN] visitMulExp: 0 +[DEBUG IRGEN] visitPrimaryExp: 0 +[DEBUG] visitPrimaryExp +[DEBUG] visitEqExp: left=0x55dd45b6ba80, type=int, right=0x55dd44a9d560, type=int +[DEBUG IF] Creating condbr: %t3 -> then, merge +[DEBUG IF] Generating then branch in block: then +[DEBUG IRGEN] visitStmt: return0; +[DEBUG IRGEN] HandleReturnStmt: return0; +[DEBUG IRGEN] EvalExpr: 0 +[DEBUG IRGEN] visitAddExp: 0 +[DEBUG IRGEN] visitMulExp: 0 +[DEBUG IRGEN] visitPrimaryExp: 0 +[DEBUG] visitPrimaryExp +[DEBUG] EvalExpr: success, result = 0x55dd44a9d560 +[DEBUG IF] then branch terminated: 1 +[DEBUG IF] then block has terminator: 1 +[DEBUG IF] thenTerminated=1, elseTerminated=0 +[DEBUG IF] No else, setting insert point to merge block: merge +[DEBUG IF] Final insert block: merge +[DEBUG] current insert block: merge +[DEBUG IRGEN] visitBlockItem: if(b==1)returna%mod; +[DEBUG IRGEN] visitStmt: if(b==1)returna%mod; +[DEBUG IRGEN] HandleIfStmt: if(b==1)returna%mod; +[DEBUG IF] thenBlock: then +[DEBUG IF] mergeBlock: merge +[DEBUG IF] current insert block before cond: merge +[DEBUG IRGEN] visitAddExp: b +[DEBUG IRGEN] visitMulExp: b +[DEBUG IRGEN] visitPrimaryExp: b +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: b +[DEBUG IRGEN] visitAddExp: 1 +[DEBUG IRGEN] visitMulExp: 1 +[DEBUG IRGEN] visitPrimaryExp: 1 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55dd45b6bff0 +[DEBUG] visitEqExp: left=0x55dd45b6bf30, type=int, right=0x55dd45b6bff0, type=int +[DEBUG IF] Creating condbr: %t5 -> then, merge +[DEBUG IF] Generating then branch in block: then +[DEBUG IRGEN] visitStmt: returna%mod; +[DEBUG IRGEN] HandleReturnStmt: returna%mod; +[DEBUG IRGEN] EvalExpr: a%mod +[DEBUG IRGEN] visitAddExp: a%mod +[DEBUG IRGEN] visitMulExp: a%mod +[DEBUG IRGEN] visitMulExp: a +[DEBUG IRGEN] visitPrimaryExp: a +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: a +[DEBUG IRGEN] visitPrimaryExp: mod +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: mod +[DEBUG] visitLVal: constant mod +[DEBUG] visitMulExp: left=0x55dd45b6c270, type=int, right=0x55dd44b58bd0, type=int +[DEBUG] EvalExpr: success, result = 0x55dd45b6c2f0 +[DEBUG IF] then branch terminated: 1 +[DEBUG IF] then block has terminator: 1 +[DEBUG IF] thenTerminated=1, elseTerminated=0 +[DEBUG IF] No else, setting insert point to merge block: merge +[DEBUG IF] Final insert block: merge +[DEBUG] current insert block: merge +[DEBUG IRGEN] visitBlockItem: intcur=multiply(a,b/2); +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: cur +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理局部变量 +[DEBUG] HandleLocalVariable: 开始处理局部变量 cur +[DEBUG] visitInitVal: 开始处理初始化值 +[DEBUG] visitInitVal: 处理表达式初始化 +[DEBUG IRGEN] EvalExpr: multiply(a,b/2) +[DEBUG IRGEN] visitAddExp: multiply(a,b/2) +[DEBUG IRGEN] visitMulExp: multiply(a,b/2) +[DEBUG IRGEN] visitCallExp: 调用函数 multiply +[DEBUG IRGEN] EvalExpr: a +[DEBUG IRGEN] visitAddExp: a +[DEBUG IRGEN] visitMulExp: a +[DEBUG IRGEN] visitPrimaryExp: a +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: a +[DEBUG] EvalExpr: success, result = 0x55dd45b6c5d0 +[DEBUG IRGEN] EvalExpr: b/2 +[DEBUG IRGEN] visitAddExp: b/2 +[DEBUG IRGEN] visitMulExp: b/2 +[DEBUG IRGEN] visitMulExp: b +[DEBUG IRGEN] visitPrimaryExp: b +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: b +[DEBUG IRGEN] visitPrimaryExp: 2 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55dd45b6c780 +[DEBUG] visitMulExp: left=0x55dd45b6c6e0, type=int, right=0x55dd45b6c780, type=int +[DEBUG] EvalExpr: success, result = 0x55dd45b6c7e0 +[DEBUG IRGEN] visitCallExp: 收集到 2 个参数 +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x55dd45b6c8e0 +[DEBUG] EvalExpr: success, result = 0x55dd45b6c8e0 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] current insert block: merge +[DEBUG IRGEN] visitBlockItem: cur=(cur+cur)%mod; +[DEBUG IRGEN] visitStmt: cur=(cur+cur)%mod; +[DEBUG IRGEN] HandleAssignStmt: cur=(cur+cur)%mod; +[DEBUG IRGEN] EvalExpr: (cur+cur)%mod +[DEBUG IRGEN] visitAddExp: (cur+cur)%mod +[DEBUG IRGEN] visitMulExp: (cur+cur)%mod +[DEBUG IRGEN] visitMulExp: (cur+cur) +[DEBUG IRGEN] visitPrimaryExp: (cur+cur) +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting parenthesized expression +[DEBUG IRGEN] EvalExpr: cur+cur +[DEBUG IRGEN] visitAddExp: cur+cur +[DEBUG IRGEN] visitAddExp: cur +[DEBUG IRGEN] visitMulExp: cur +[DEBUG IRGEN] visitPrimaryExp: cur +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: cur +[DEBUG IRGEN] visitMulExp: cur +[DEBUG IRGEN] visitPrimaryExp: cur +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: cur +[DEBUG] visitAddExp: left=0x55dd45b6cad0, type=int, right=0x55dd45b6cb50, type=int +[DEBUG] EvalExpr: success, result = 0x55dd45b6cc40 +[DEBUG IRGEN] visitPrimaryExp: mod +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: mod +[DEBUG] visitLVal: constant mod +[DEBUG] visitMulExp: left=0x55dd45b6cc40, type=int, right=0x55dd44b58bd0, type=int +[DEBUG] EvalExpr: success, result = 0x55dd45b6cdb0 +[DEBUG] HandleAssignStmt: assigning to cur +[DEBUG] HandleAssignStmt: found in storage_map_ for cur, ptr = 0x55dd45b6c490 +[DEBUG] HandleAssignStmt: scalar assignment to cur, ptr = 0x55dd45b6c490, rhs = 0x55dd45b6cdb0 +[DEBUG] Is int32: 0 +[DEBUG] Is float: 0 +[DEBUG] Is ptr int32: 1 +[DEBUG] Is ptr float: 0 +[DEBUG] Is array: 0 +[DEBUG] Value is int32: 1 +[DEBUG] current insert block: merge +[DEBUG IRGEN] visitBlockItem: if(b%2==1)return(cur+a)%mod;elsereturncur; +[DEBUG IRGEN] visitStmt: if(b%2==1)return(cur+a)%mod;elsereturncur; +[DEBUG IRGEN] HandleIfStmt: if(b%2==1)return(cur+a)%mod;elsereturncur; +[DEBUG IF] thenBlock: then +[DEBUG IF] elseBlock: else +[DEBUG IF] mergeBlock: merge +[DEBUG IF] current insert block before cond: merge +[DEBUG IRGEN] visitAddExp: b%2 +[DEBUG IRGEN] visitMulExp: b%2 +[DEBUG IRGEN] visitMulExp: b +[DEBUG IRGEN] visitPrimaryExp: b +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: b +[DEBUG IRGEN] visitPrimaryExp: 2 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 2 created as 0x55dd45b6c780 +[DEBUG] visitMulExp: left=0x55dd45b6d180, type=int, right=0x55dd45b6c780, type=int +[DEBUG IRGEN] visitAddExp: 1 +[DEBUG IRGEN] visitMulExp: 1 +[DEBUG IRGEN] visitPrimaryExp: 1 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 1 created as 0x55dd45b6bff0 +[DEBUG] visitEqExp: left=0x55dd45b6d2d0, type=int, right=0x55dd45b6bff0, type=int +[DEBUG IF] Creating condbr: %t19 -> then, else +[DEBUG IF] Generating then branch in block: then +[DEBUG IRGEN] visitStmt: return(cur+a)%mod; +[DEBUG IRGEN] HandleReturnStmt: return(cur+a)%mod; +[DEBUG IRGEN] EvalExpr: (cur+a)%mod +[DEBUG IRGEN] visitAddExp: (cur+a)%mod +[DEBUG IRGEN] visitMulExp: (cur+a)%mod +[DEBUG IRGEN] visitMulExp: (cur+a) +[DEBUG IRGEN] visitPrimaryExp: (cur+a) +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting parenthesized expression +[DEBUG IRGEN] EvalExpr: cur+a +[DEBUG IRGEN] visitAddExp: cur+a +[DEBUG IRGEN] visitAddExp: cur +[DEBUG IRGEN] visitMulExp: cur +[DEBUG IRGEN] visitPrimaryExp: cur +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: cur +[DEBUG IRGEN] visitMulExp: a +[DEBUG IRGEN] visitPrimaryExp: a +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: a +[DEBUG] visitAddExp: left=0x55dd45b6d570, type=int, right=0x55dd45b6d700, type=int +[DEBUG] EvalExpr: success, result = 0x55dd45b6d7c0 +[DEBUG IRGEN] visitPrimaryExp: mod +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: mod +[DEBUG] visitLVal: constant mod +[DEBUG] visitMulExp: left=0x55dd45b6d7c0, type=int, right=0x55dd44b58bd0, type=int +[DEBUG] EvalExpr: success, result = 0x55dd45b6d880 +[DEBUG IF] then branch terminated: 1 +[DEBUG IF] then block has terminator: 1 +[DEBUG IF] Generating else branch in block: else +[DEBUG IRGEN] visitStmt: returncur; +[DEBUG IRGEN] HandleReturnStmt: returncur; +[DEBUG IRGEN] EvalExpr: cur +[DEBUG IRGEN] visitAddExp: cur +[DEBUG IRGEN] visitMulExp: cur +[DEBUG IRGEN] visitPrimaryExp: cur +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: cur +[DEBUG] EvalExpr: success, result = 0x55dd45b6d9e0 +[DEBUG IF] else branch terminated: 1 +[DEBUG IF] else block has terminator: 1 +[DEBUG IF] thenTerminated=1, elseTerminated=1 +[DEBUG IF] Both branches terminated, creating new block: after.if +[DEBUG IF] Final insert block: after.if +[DEBUG] current insert block: after.if +[ERROR] visitFuncDef: 验证函数结构失败: [irgen] 基本块未正确终结: merge +[error] [irgen] 基本块未正确终结: merge ========== test/test_case/performance/gameoflife-oscillator.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -13278,7 +13613,7 @@ SymbolTable::addSymbol: stored steps with kind=0, const_def_ctx=0 SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = width, sym->kind = 0 绑定变量: width -> VarDefContext -CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x563b8766b3c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: getint() [DEBUG] visitUnaryExp: getint() @@ -13289,7 +13624,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = height, sym->kind = 0 绑定变量: height -> VarDefContext -CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x563b8766ba20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: getint() [DEBUG] visitUnaryExp: getint() @@ -13300,7 +13635,7 @@ SymbolTable::lookup: found getint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = steps, sym->kind = 0 绑定变量: steps -> VarDefContext -CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x563b8766bf70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: getint() [DEBUG] visitUnaryExp: getint() @@ -13331,21 +13666,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b87676d20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: height [DEBUG] visitPrimaryExp: height SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = height, sym->kind = 0 绑定变量: height -> VarDefContext -CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x563b8766ba20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b87676540, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -13356,14 +13691,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b87676540, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: width [DEBUG] visitPrimaryExp: width SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = width, sym->kind = 0 绑定变量: width -> VarDefContext -CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x563b8766b3c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: get base_type: int is_array: 0 dim_count: 0 @@ -13380,7 +13715,7 @@ SymbolTable::addSymbol: stored get with kind=0, const_def_ctx=0 SymbolTable::lookup: found get in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = get, sym->kind = 0 绑定变量: get -> VarDefContext -CheckLValue 绑定变量: get, sym->kind: 0, sym->var_def_ctx: 0x563b876801e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: get, sym->kind: 0, sym->var_def_ctx: 0x5627859d61e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 35 [DEBUG] visitPrimaryExp: 35 @@ -13389,7 +13724,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet1, sym->kind = 0 绑定变量: sheet1 -> VarDefContext -CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x563b87660b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -13397,7 +13732,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b87676d20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -13405,7 +13740,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b87676540, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 1 @@ -13416,7 +13751,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet1, sym->kind = 0 绑定变量: sheet1 -> VarDefContext -CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x563b87660b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -13424,7 +13759,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b87676d20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -13432,7 +13767,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b87676540, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 0 @@ -13442,7 +13777,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b87676540, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -13450,7 +13785,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b87676540, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859cc540, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13464,7 +13799,7 @@ SymbolTable::lookup: found getch in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b87676d20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -13472,7 +13807,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b87676d20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859ccd20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13496,21 +13831,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876929b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: height [DEBUG] visitPrimaryExp: height SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = height, sym->kind = 0 绑定变量: height -> VarDefContext -CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x563b8766ba20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876920d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -13521,14 +13856,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876920d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: width [DEBUG] visitPrimaryExp: width SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = width, sym->kind = 0 绑定变量: width -> VarDefContext -CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x563b8766b3c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -13537,7 +13872,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet1, sym->kind = 0 绑定变量: sheet1 -> VarDefContext -CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x563b87660b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -13545,7 +13880,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876929b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -13553,7 +13888,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876920d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: 1 @@ -13586,7 +13921,7 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876920d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -13594,7 +13929,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876920d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859e80d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13613,7 +13948,7 @@ SymbolTable::lookup: found putch in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876929b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -13621,7 +13956,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876929b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859e89b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13645,21 +13980,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b8769d220, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: height [DEBUG] visitPrimaryExp: height SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = height, sym->kind = 0 绑定变量: height -> VarDefContext -CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x563b8766ba20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b8769c8e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -13670,21 +14005,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b8769c8e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: width [DEBUG] visitPrimaryExp: width SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = width, sym->kind = 0 绑定变量: width -> VarDefContext -CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x563b8766b3c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet1, sym->kind = 0 绑定变量: sheet1 -> VarDefContext -CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x563b87660b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -13692,7 +14027,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b8769d220, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -13700,7 +14035,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b8769c8e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: sheet2[j][i] @@ -13709,7 +14044,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sheet2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet2, sym->kind = 0 绑定变量: sheet2 -> VarDefContext -CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x563b87663170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x5627859b9170, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 2 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -13717,7 +14052,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b8769d220, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -13725,14 +14060,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b8769c8e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b8769c8e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -13740,7 +14075,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b8769c8e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859f28e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13748,7 +14083,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b8769d220, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -13756,7 +14091,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b8769d220, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859f3220, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13784,21 +14119,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: height [DEBUG] visitPrimaryExp: height SymbolTable::lookup: found height in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = height, sym->kind = 0 绑定变量: height -> VarDefContext -CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x563b8766ba20, sym->const_def_ctx: 0 +CheckLValue 绑定变量: height, sym->kind: 0, sym->var_def_ctx: 0x5627859c1a20, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -13809,14 +14144,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: width [DEBUG] visitPrimaryExp: width SymbolTable::lookup: found width in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = width, sym->kind = 0 绑定变量: width -> VarDefContext -CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x563b8766b3c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: width, sym->kind: 0, sym->var_def_ctx: 0x5627859c13c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] CheckVarDef: alive_count base_type: int is_array: 0 dim_count: 0 @@ -13834,7 +14169,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13844,7 +14179,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13862,7 +14197,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13872,7 +14207,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: source[j-1][i+1] @@ -13888,7 +14223,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13898,7 +14233,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13916,7 +14251,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i-1 [DEBUG] visitUnaryExp: i @@ -13924,7 +14259,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13942,7 +14277,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -13950,7 +14285,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13968,7 +14303,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13978,7 +14313,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -13996,7 +14331,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14006,7 +14341,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: source[j+1][i+1] @@ -14022,7 +14357,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14032,7 +14367,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14053,7 +14388,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -14061,7 +14396,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: 1 @@ -14071,7 +14406,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found alive_count in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = alive_count, sym->kind = 0 绑定变量: alive_count -> VarDefContext -CheckLValue 绑定变量: alive_count, sym->kind: 0, sym->var_def_ctx: 0x563b876a96e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: alive_count, sym->kind: 0, sym->var_def_ctx: 0x5627859ff6e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -14088,7 +14423,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -14096,7 +14431,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 1 @@ -14108,7 +14443,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found alive_count in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = alive_count, sym->kind = 0 绑定变量: alive_count -> VarDefContext -CheckLValue 绑定变量: alive_count, sym->kind: 0, sym->var_def_ctx: 0x563b876a96e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: alive_count, sym->kind: 0, sym->var_def_ctx: 0x5627859ff6e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 3 [DEBUG] visitPrimaryExp: 3 @@ -14125,7 +14460,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -14133,7 +14468,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 1 @@ -14152,7 +14487,7 @@ dim_count: 2, subscript_count: 2 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -14160,7 +14495,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 0 @@ -14170,7 +14505,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -14178,7 +14513,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x563b876a5d00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5627859fbd00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14186,7 +14521,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -14194,7 +14529,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x563b876a6610, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5627859fc610, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14218,7 +14553,7 @@ SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = steps, sym->kind = 0 绑定变量: steps -> VarDefContext -CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x563b8766bf70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 0 [DEBUG] visitPrimaryExp: 0 @@ -14229,7 +14564,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = active, sym->kind = 0 绑定变量: active -> VarDefContext -CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x563b876647e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14247,7 +14582,7 @@ SymbolTable::lookup: found step in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet1, sym->kind = 0 绑定变量: sheet1 -> VarDefContext -CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x563b87660b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: sheet2 @@ -14256,7 +14591,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found sheet2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet2, sym->kind = 0 绑定变量: sheet2 -> VarDefContext -CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x563b87663170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x5627859b9170, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -14265,7 +14600,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = active, sym->kind = 0 绑定变量: active -> VarDefContext -CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x563b876647e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 2 [DEBUG] visitUnaryExp: 2 @@ -14284,7 +14619,7 @@ SymbolTable::lookup: found step in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found sheet2 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet2, sym->kind = 0 绑定变量: sheet2 -> VarDefContext -CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x563b87663170, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet2, sym->kind: 0, sym->var_def_ctx: 0x5627859b9170, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: sheet1 @@ -14293,7 +14628,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found sheet1 in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sheet1, sym->kind = 0 绑定变量: sheet1 -> VarDefContext -CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x563b87660b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sheet1, sym->kind: 0, sym->var_def_ctx: 0x5627859b6b90, sym->const_def_ctx: 0 dim_count: 2, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -14302,7 +14637,7 @@ dim_count: 2, subscript_count: 0 SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = active, sym->kind = 0 绑定变量: active -> VarDefContext -CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x563b876647e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -14311,7 +14646,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = steps, sym->kind = 0 绑定变量: steps -> VarDefContext -CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x563b8766bf70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: steps-1 [DEBUG] visitUnaryExp: steps @@ -14319,7 +14654,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found steps in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = steps, sym->kind = 0 绑定变量: steps -> VarDefContext -CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x563b8766bf70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: steps, sym->kind: 0, sym->var_def_ctx: 0x5627859c1f70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14335,7 +14670,7 @@ SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found active in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = active, sym->kind = 0 绑定变量: active -> VarDefContext -CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x563b876647e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: active, sym->kind: 0, sym->var_def_ctx: 0x5627859ba7e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -14372,11 +14707,338 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 sheet1 -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 sheet1 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 250000 +[DEBUG] HandleGlobalVariable: 创建全局数组: sheet1 +[DEBUG] HandleGlobalVariable: 处理初始化值 +[DEBUG] visitInitVal: 开始处理初始化值 +[DEBUG] visitInitVal: 空初始化列表 +[DEBUG] HandleGlobalVariable: 获取到初始化值列表, 大小: 0 +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: sheet2 +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 sheet2 +[DEBUG] HandleGlobalVariable: 变量 sheet2 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 250000 -[error] [irgen] 全局数组大小无效 +[DEBUG] HandleGlobalVariable: 创建全局数组: sheet2 +[DEBUG] HandleGlobalVariable: 处理初始化值 +[DEBUG] visitInitVal: 开始处理初始化值 +[DEBUG] visitInitVal: 空初始化列表 +[DEBUG] HandleGlobalVariable: 获取到初始化值列表, 大小: 0 +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: active +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 active +[DEBUG] HandleGlobalVariable: 变量 active 是 int 类型 +[DEBUG] HandleGlobalVariable: 创建全局标量变量: active +[DEBUG] HandleGlobalVariable: 处理标量初始化值 +[DEBUG] visitInitVal: 开始处理初始化值 +[DEBUG] visitInitVal: 处理表达式初始化 +[DEBUG IRGEN] EvalExpr: 1 +[DEBUG IRGEN] visitAddExp: 1 +[DEBUG IRGEN] visitMulExp: 1 +[DEBUG IRGEN] visitPrimaryExp: 1 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10 +[DEBUG] EvalExpr: success, result = 0x562785c1ca10 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: width +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 width +[DEBUG] HandleGlobalVariable: 变量 width 是 int 类型 +[DEBUG] HandleGlobalVariable: 创建全局标量变量: width +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: height +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 height +[DEBUG] HandleGlobalVariable: 变量 height 是 int 类型 +[DEBUG] HandleGlobalVariable: 创建全局标量变量: height +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: steps +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 steps +[DEBUG] HandleGlobalVariable: 变量 steps 是 int 类型 +[DEBUG] HandleGlobalVariable: 创建全局标量变量: steps +[DEBUG] visitDecl: 声明处理完成 +[DEBUG IRGEN] visitFuncDef: read_map +[DEBUG] visitFuncDef: 创建函数 read_map,返回类型: void,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x562785c1cdc0 +[DEBUG] visitFuncDef: 开始生成函数体 +[DEBUG IRGEN] visitBlock: {width=getint();height=getint();steps=getint();getch();inti=1;intj=1;while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;}} +[DEBUG IRGEN] visitBlockItem: width=getint(); +[DEBUG IRGEN] visitStmt: width=getint(); +[DEBUG IRGEN] HandleAssignStmt: width=getint(); +[DEBUG IRGEN] EvalExpr: getint() +[DEBUG IRGEN] visitAddExp: getint() +[DEBUG IRGEN] visitMulExp: getint() +[DEBUG IRGEN] visitCallExp: 调用函数 getint +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x562785c1d730 +[DEBUG] EvalExpr: success, result = 0x562785c1d730 +[DEBUG] HandleAssignStmt: assigning to width +[DEBUG] HandleAssignStmt: found in global_map_ for width, ptr = 0x562785c1cab0 +[DEBUG] HandleAssignStmt: scalar assignment to width, ptr = 0x562785c1cab0, rhs = 0x562785c1d730 +[DEBUG] Is int32: 0 +[DEBUG] Is float: 0 +[DEBUG] Is ptr int32: 1 +[DEBUG] Is ptr float: 0 +[DEBUG] Is array: 0 +[DEBUG] Value is int32: 1 +[DEBUG] current insert block: entry +[DEBUG IRGEN] visitBlockItem: height=getint(); +[DEBUG IRGEN] visitStmt: height=getint(); +[DEBUG IRGEN] HandleAssignStmt: height=getint(); +[DEBUG IRGEN] EvalExpr: getint() +[DEBUG IRGEN] visitAddExp: getint() +[DEBUG IRGEN] visitMulExp: getint() +[DEBUG IRGEN] visitCallExp: 调用函数 getint +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x562785c1d7d0 +[DEBUG] EvalExpr: success, result = 0x562785c1d7d0 +[DEBUG] HandleAssignStmt: assigning to height +[DEBUG] HandleAssignStmt: found in global_map_ for height, ptr = 0x562785c1cb80 +[DEBUG] HandleAssignStmt: scalar assignment to height, ptr = 0x562785c1cb80, rhs = 0x562785c1d7d0 +[DEBUG] Is int32: 0 +[DEBUG] Is float: 0 +[DEBUG] Is ptr int32: 1 +[DEBUG] Is ptr float: 0 +[DEBUG] Is array: 0 +[DEBUG] Value is int32: 1 +[DEBUG] current insert block: entry +[DEBUG IRGEN] visitBlockItem: steps=getint(); +[DEBUG IRGEN] visitStmt: steps=getint(); +[DEBUG IRGEN] HandleAssignStmt: steps=getint(); +[DEBUG IRGEN] EvalExpr: getint() +[DEBUG IRGEN] visitAddExp: getint() +[DEBUG IRGEN] visitMulExp: getint() +[DEBUG IRGEN] visitCallExp: 调用函数 getint +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x562785c1d910 +[DEBUG] EvalExpr: success, result = 0x562785c1d910 +[DEBUG] HandleAssignStmt: assigning to steps +[DEBUG] HandleAssignStmt: found in global_map_ for steps, ptr = 0x562785c1cc90 +[DEBUG] HandleAssignStmt: scalar assignment to steps, ptr = 0x562785c1cc90, rhs = 0x562785c1d910 +[DEBUG] Is int32: 0 +[DEBUG] Is float: 0 +[DEBUG] Is ptr int32: 1 +[DEBUG] Is ptr float: 0 +[DEBUG] Is array: 0 +[DEBUG] Value is int32: 1 +[DEBUG] current insert block: entry +[DEBUG IRGEN] visitBlockItem: getch(); +[DEBUG IRGEN] visitStmt: getch(); +[DEBUG IRGEN] EvalExpr: getch() +[DEBUG IRGEN] visitAddExp: getch() +[DEBUG IRGEN] visitMulExp: getch() +[DEBUG IRGEN] visitCallExp: 调用函数 getch +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x562785c1dae0 +[DEBUG] EvalExpr: success, result = 0x562785c1dae0 +[DEBUG] current insert block: entry +[DEBUG IRGEN] visitBlockItem: inti=1; +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: i +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理局部变量 +[DEBUG] HandleLocalVariable: 开始处理局部变量 i +[DEBUG] visitInitVal: 开始处理初始化值 +[DEBUG] visitInitVal: 处理表达式初始化 +[DEBUG IRGEN] EvalExpr: 1 +[DEBUG IRGEN] visitAddExp: 1 +[DEBUG IRGEN] visitMulExp: 1 +[DEBUG IRGEN] visitPrimaryExp: 1 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10 +[DEBUG] EvalExpr: success, result = 0x562785c1ca10 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] current insert block: entry +[DEBUG IRGEN] visitBlockItem: intj=1; +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: j +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理局部变量 +[DEBUG] HandleLocalVariable: 开始处理局部变量 j +[DEBUG] visitInitVal: 开始处理初始化值 +[DEBUG] visitInitVal: 处理表达式初始化 +[DEBUG IRGEN] EvalExpr: 1 +[DEBUG IRGEN] visitAddExp: 1 +[DEBUG IRGEN] visitMulExp: 1 +[DEBUG IRGEN] visitPrimaryExp: 1 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10 +[DEBUG] EvalExpr: success, result = 0x562785c1ca10 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] current insert block: entry +[DEBUG IRGEN] visitBlockItem: while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;} +[DEBUG IRGEN] visitStmt: while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;} +[DEBUG IRGEN] HandleWhileStmt: while(j<=height){i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;} +[DEBUG WHILE] Current insert block before while: entry +[DEBUG WHILE] condBlock: while.cond +[DEBUG WHILE] bodyBlock: while.body +[DEBUG WHILE] exitBlock: while.exit +[DEBUG WHILE] Adding br to condBlock from current block +[DEBUG WHILE] loopStack size: 1 +[DEBUG WHILE] Generating condition in block: while.cond +[DEBUG IRGEN] visitAddExp: j +[DEBUG IRGEN] visitMulExp: j +[DEBUG IRGEN] visitPrimaryExp: j +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: j +[DEBUG IRGEN] visitAddExp: height +[DEBUG IRGEN] visitMulExp: height +[DEBUG IRGEN] visitPrimaryExp: height +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: height +[DEBUG] visitRelExp: left=0x562785c1df20, type=int, right=0x562785c1e2f0, type=int +[DEBUG WHILE] condBlock has terminator: 1 +[DEBUG WHILE] Generating body in block: while.body +[DEBUG IRGEN] visitStmt: {i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;} +[DEBUG IRGEN] visitBlock: {i=1;while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;}getch();j=j+1;} +[DEBUG IRGEN] visitBlockItem: i=1; +[DEBUG IRGEN] visitStmt: i=1; +[DEBUG IRGEN] HandleAssignStmt: i=1; +[DEBUG IRGEN] EvalExpr: 1 +[DEBUG IRGEN] visitAddExp: 1 +[DEBUG IRGEN] visitMulExp: 1 +[DEBUG IRGEN] visitPrimaryExp: 1 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10 +[DEBUG] EvalExpr: success, result = 0x562785c1ca10 +[DEBUG] HandleAssignStmt: assigning to i +[DEBUG] HandleAssignStmt: found in storage_map_ for i, ptr = 0x562785c1dba0 +[DEBUG] HandleAssignStmt: scalar assignment to i, ptr = 0x562785c1dba0, rhs = 0x562785c1ca10 +[DEBUG] Is int32: 0 +[DEBUG] Is float: 0 +[DEBUG] Is ptr int32: 1 +[DEBUG] Is ptr float: 0 +[DEBUG] Is array: 0 +[DEBUG] Value is int32: 1 +[DEBUG] current insert block: while.body +[DEBUG IRGEN] visitBlockItem: while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;} +[DEBUG IRGEN] visitStmt: while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;} +[DEBUG IRGEN] HandleWhileStmt: while(i<=width){intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;} +[DEBUG WHILE] Current insert block before while: while.body +[DEBUG WHILE] condBlock: while.cond +[DEBUG WHILE] bodyBlock: while.body +[DEBUG WHILE] exitBlock: while.exit +[DEBUG WHILE] Adding br to condBlock from current block +[DEBUG WHILE] loopStack size: 2 +[DEBUG WHILE] Generating condition in block: while.cond +[DEBUG IRGEN] visitAddExp: i +[DEBUG IRGEN] visitMulExp: i +[DEBUG IRGEN] visitPrimaryExp: i +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: i +[DEBUG IRGEN] visitAddExp: width +[DEBUG IRGEN] visitMulExp: width +[DEBUG IRGEN] visitPrimaryExp: width +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: width +[DEBUG] visitRelExp: left=0x562785c1e900, type=int, right=0x562785c1e980, type=int +[DEBUG WHILE] condBlock has terminator: 1 +[DEBUG WHILE] Generating body in block: while.body +[DEBUG IRGEN] visitStmt: {intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;} +[DEBUG IRGEN] visitBlock: {intget=getch();if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;}i=i+1;} +[DEBUG IRGEN] visitBlockItem: intget=getch(); +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: get +[DEBUG] visitVarDef: 是否为数组: 否 +[DEBUG] visitVarDef: 处理局部变量 +[DEBUG] HandleLocalVariable: 开始处理局部变量 get +[DEBUG] visitInitVal: 开始处理初始化值 +[DEBUG] visitInitVal: 处理表达式初始化 +[DEBUG IRGEN] EvalExpr: getch() +[DEBUG IRGEN] visitAddExp: getch() +[DEBUG IRGEN] visitMulExp: getch() +[DEBUG IRGEN] visitCallExp: 调用函数 getch +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x562785c1ed00 +[DEBUG] EvalExpr: success, result = 0x562785c1ed00 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] current insert block: while.body +[DEBUG IRGEN] visitBlockItem: if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;} +[DEBUG IRGEN] visitStmt: if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;} +[DEBUG IRGEN] HandleIfStmt: if(get==35){sheet1[j][i]=1;}else{sheet1[j][i]=0;} +[DEBUG IF] thenBlock: then +[DEBUG IF] elseBlock: else +[DEBUG IF] mergeBlock: merge +[DEBUG IF] current insert block before cond: while.body +[DEBUG IRGEN] visitAddExp: get +[DEBUG IRGEN] visitMulExp: get +[DEBUG IRGEN] visitPrimaryExp: get +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: get +[DEBUG IRGEN] visitAddExp: 35 +[DEBUG IRGEN] visitMulExp: 35 +[DEBUG IRGEN] visitPrimaryExp: 35 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 35 created as 0x562785c1d570 +[DEBUG] visitEqExp: left=0x562785c1f160, type=int, right=0x562785c1d570, type=int +[DEBUG IF] Creating condbr: %t15 -> then, else +[DEBUG IF] Generating then branch in block: then +[DEBUG IRGEN] visitStmt: {sheet1[j][i]=1;} +[DEBUG IRGEN] visitBlock: {sheet1[j][i]=1;} +[DEBUG IRGEN] visitBlockItem: sheet1[j][i]=1; +[DEBUG IRGEN] visitStmt: sheet1[j][i]=1; +[DEBUG IRGEN] HandleAssignStmt: sheet1[j][i]=1; +[DEBUG IRGEN] EvalExpr: 1 +[DEBUG IRGEN] visitAddExp: 1 +[DEBUG IRGEN] visitMulExp: 1 +[DEBUG IRGEN] visitPrimaryExp: 1 +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: constant int 1 created as 0x562785c1ca10 +[DEBUG] EvalExpr: success, result = 0x562785c1ca10 +[DEBUG] HandleAssignStmt: assigning to sheet1 +[DEBUG] HandleAssignStmt: found in global_map_ for sheet1, ptr = 0x562785a34330 +[DEBUG IRGEN] EvalExpr: j +[DEBUG IRGEN] visitAddExp: j +[DEBUG IRGEN] visitMulExp: j +[DEBUG IRGEN] visitPrimaryExp: j +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: j +[DEBUG] EvalExpr: success, result = 0x562785c1f420 +[DEBUG IRGEN] EvalExpr: i +[DEBUG IRGEN] visitAddExp: i +[DEBUG IRGEN] visitMulExp: i +[DEBUG IRGEN] visitPrimaryExp: i +[DEBUG] visitPrimaryExp +[DEBUG] visitPrimaryExp: visiting lVal +[DEBUG] visitLVal: i +[DEBUG] EvalExpr: success, result = 0x562785c1f570 +[error] [ir] StoreInst 当前只支持写入 i32* ========== test/test_case/performance/if-combine3.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -14437,7 +15099,7 @@ SymbolTable::addSymbol: stored m with kind=0, const_def_ctx=0 SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37cbca00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 100 [DEBUG] visitPrimaryExp: 100 @@ -14446,7 +15108,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: m [DEBUG] visitUnaryExp: m @@ -14454,7 +15116,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37cbca00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 0 @@ -14464,7 +15126,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37cbca00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: m+1 [DEBUG] visitUnaryExp: m @@ -14472,7 +15134,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found m in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37cbca00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55a4da00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14482,7 +15144,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c37cb6c00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x560d55a47c00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -14497,7 +15159,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -14506,7 +15168,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 1 [DEBUG] visitUnaryExp: 1 @@ -14521,7 +15183,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -14530,7 +15192,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 2 [DEBUG] visitUnaryExp: 2 @@ -14545,7 +15207,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 3 [DEBUG] visitPrimaryExp: 3 @@ -14554,7 +15216,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 3 [DEBUG] visitUnaryExp: 3 @@ -14569,7 +15231,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 4 [DEBUG] visitPrimaryExp: 4 @@ -14578,7 +15240,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 4 [DEBUG] visitUnaryExp: 4 @@ -14593,7 +15255,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 5 [DEBUG] visitPrimaryExp: 5 @@ -14602,7 +15264,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 5 [DEBUG] visitUnaryExp: 5 @@ -14617,7 +15279,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 6 [DEBUG] visitPrimaryExp: 6 @@ -14626,7 +15288,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 6 [DEBUG] visitUnaryExp: 6 @@ -14641,7 +15303,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 7 [DEBUG] visitPrimaryExp: 7 @@ -14650,7 +15312,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 7 [DEBUG] visitUnaryExp: 7 @@ -14665,7 +15327,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 8 [DEBUG] visitPrimaryExp: 8 @@ -14674,7 +15336,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 8 [DEBUG] visitUnaryExp: 8 @@ -14689,7 +15351,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 9 [DEBUG] visitPrimaryExp: 9 @@ -14698,7 +15360,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 9 [DEBUG] visitUnaryExp: 9 @@ -14713,7 +15375,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 10 [DEBUG] visitPrimaryExp: 10 @@ -14722,7 +15384,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 10 [DEBUG] visitUnaryExp: 10 @@ -14737,7 +15399,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 11 [DEBUG] visitPrimaryExp: 11 @@ -14746,7 +15408,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 11 [DEBUG] visitUnaryExp: 11 @@ -14761,7 +15423,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 12 [DEBUG] visitPrimaryExp: 12 @@ -14770,7 +15432,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 12 [DEBUG] visitUnaryExp: 12 @@ -14785,7 +15447,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 13 [DEBUG] visitPrimaryExp: 13 @@ -14794,7 +15456,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 13 [DEBUG] visitUnaryExp: 13 @@ -14809,7 +15471,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 14 [DEBUG] visitPrimaryExp: 14 @@ -14818,7 +15480,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 14 [DEBUG] visitUnaryExp: 14 @@ -14833,7 +15495,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 15 [DEBUG] visitPrimaryExp: 15 @@ -14842,7 +15504,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 15 [DEBUG] visitUnaryExp: 15 @@ -14857,7 +15519,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 16 [DEBUG] visitPrimaryExp: 16 @@ -14866,7 +15528,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 16 [DEBUG] visitUnaryExp: 16 @@ -14881,7 +15543,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 17 [DEBUG] visitPrimaryExp: 17 @@ -14890,7 +15552,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 17 [DEBUG] visitUnaryExp: 17 @@ -14905,7 +15567,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 18 [DEBUG] visitPrimaryExp: 18 @@ -14914,7 +15576,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 18 [DEBUG] visitUnaryExp: 18 @@ -14929,7 +15591,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 19 [DEBUG] visitPrimaryExp: 19 @@ -14938,7 +15600,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 19 [DEBUG] visitUnaryExp: 19 @@ -14953,7 +15615,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 20 [DEBUG] visitPrimaryExp: 20 @@ -14962,7 +15624,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 20 [DEBUG] visitUnaryExp: 20 @@ -14977,7 +15639,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 21 [DEBUG] visitPrimaryExp: 21 @@ -14986,7 +15648,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 21 [DEBUG] visitUnaryExp: 21 @@ -15001,7 +15663,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 22 [DEBUG] visitPrimaryExp: 22 @@ -15010,7 +15672,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 22 [DEBUG] visitUnaryExp: 22 @@ -15025,7 +15687,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 23 [DEBUG] visitPrimaryExp: 23 @@ -15034,7 +15696,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 23 [DEBUG] visitUnaryExp: 23 @@ -15049,7 +15711,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 24 [DEBUG] visitPrimaryExp: 24 @@ -15058,7 +15720,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 24 [DEBUG] visitUnaryExp: 24 @@ -15073,7 +15735,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 25 [DEBUG] visitPrimaryExp: 25 @@ -15082,7 +15744,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 25 [DEBUG] visitUnaryExp: 25 @@ -15097,7 +15759,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 26 [DEBUG] visitPrimaryExp: 26 @@ -15106,7 +15768,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 26 [DEBUG] visitUnaryExp: 26 @@ -15121,7 +15783,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 27 [DEBUG] visitPrimaryExp: 27 @@ -15130,7 +15792,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 27 [DEBUG] visitUnaryExp: 27 @@ -15145,7 +15807,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 28 [DEBUG] visitPrimaryExp: 28 @@ -15154,7 +15816,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 28 [DEBUG] visitUnaryExp: 28 @@ -15169,7 +15831,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 29 [DEBUG] visitPrimaryExp: 29 @@ -15178,7 +15840,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 29 [DEBUG] visitUnaryExp: 29 @@ -15193,7 +15855,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 30 [DEBUG] visitPrimaryExp: 30 @@ -15202,7 +15864,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 30 [DEBUG] visitUnaryExp: 30 @@ -15217,7 +15879,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 31 [DEBUG] visitPrimaryExp: 31 @@ -15226,7 +15888,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 31 [DEBUG] visitUnaryExp: 31 @@ -15241,7 +15903,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 32 [DEBUG] visitPrimaryExp: 32 @@ -15250,7 +15912,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 32 [DEBUG] visitUnaryExp: 32 @@ -15265,7 +15927,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 33 [DEBUG] visitPrimaryExp: 33 @@ -15274,7 +15936,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 33 [DEBUG] visitUnaryExp: 33 @@ -15289,7 +15951,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 34 [DEBUG] visitPrimaryExp: 34 @@ -15298,7 +15960,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 34 [DEBUG] visitUnaryExp: 34 @@ -15313,7 +15975,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 35 [DEBUG] visitPrimaryExp: 35 @@ -15322,7 +15984,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 35 [DEBUG] visitUnaryExp: 35 @@ -15337,7 +15999,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 36 [DEBUG] visitPrimaryExp: 36 @@ -15346,7 +16008,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 36 [DEBUG] visitUnaryExp: 36 @@ -15361,7 +16023,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 37 [DEBUG] visitPrimaryExp: 37 @@ -15370,7 +16032,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 37 [DEBUG] visitUnaryExp: 37 @@ -15385,7 +16047,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 38 [DEBUG] visitPrimaryExp: 38 @@ -15394,7 +16056,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 38 [DEBUG] visitUnaryExp: 38 @@ -15409,7 +16071,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 39 [DEBUG] visitPrimaryExp: 39 @@ -15418,7 +16080,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 39 [DEBUG] visitUnaryExp: 39 @@ -15433,7 +16095,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 40 [DEBUG] visitPrimaryExp: 40 @@ -15442,7 +16104,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 40 [DEBUG] visitUnaryExp: 40 @@ -15457,7 +16119,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 41 [DEBUG] visitPrimaryExp: 41 @@ -15466,7 +16128,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 41 [DEBUG] visitUnaryExp: 41 @@ -15481,7 +16143,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 42 [DEBUG] visitPrimaryExp: 42 @@ -15490,7 +16152,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 42 [DEBUG] visitUnaryExp: 42 @@ -15505,7 +16167,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 43 [DEBUG] visitPrimaryExp: 43 @@ -15514,7 +16176,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 43 [DEBUG] visitUnaryExp: 43 @@ -15529,7 +16191,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 44 [DEBUG] visitPrimaryExp: 44 @@ -15538,7 +16200,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 44 [DEBUG] visitUnaryExp: 44 @@ -15553,7 +16215,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 45 [DEBUG] visitPrimaryExp: 45 @@ -15562,7 +16224,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 45 [DEBUG] visitUnaryExp: 45 @@ -15577,7 +16239,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 46 [DEBUG] visitPrimaryExp: 46 @@ -15586,7 +16248,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 46 [DEBUG] visitUnaryExp: 46 @@ -15601,7 +16263,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 47 [DEBUG] visitPrimaryExp: 47 @@ -15610,7 +16272,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 47 [DEBUG] visitUnaryExp: 47 @@ -15625,7 +16287,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 48 [DEBUG] visitPrimaryExp: 48 @@ -15634,7 +16296,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 48 [DEBUG] visitUnaryExp: 48 @@ -15649,7 +16311,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 49 [DEBUG] visitPrimaryExp: 49 @@ -15658,7 +16320,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 49 [DEBUG] visitUnaryExp: 49 @@ -15673,7 +16335,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 50 [DEBUG] visitPrimaryExp: 50 @@ -15682,7 +16344,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 50 [DEBUG] visitUnaryExp: 50 @@ -15697,7 +16359,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 51 [DEBUG] visitPrimaryExp: 51 @@ -15706,7 +16368,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 51 [DEBUG] visitUnaryExp: 51 @@ -15721,7 +16383,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 52 [DEBUG] visitPrimaryExp: 52 @@ -15730,7 +16392,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 52 [DEBUG] visitUnaryExp: 52 @@ -15745,7 +16407,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 53 [DEBUG] visitPrimaryExp: 53 @@ -15754,7 +16416,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 53 [DEBUG] visitUnaryExp: 53 @@ -15769,7 +16431,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 54 [DEBUG] visitPrimaryExp: 54 @@ -15778,7 +16440,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 54 [DEBUG] visitUnaryExp: 54 @@ -15793,7 +16455,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 55 [DEBUG] visitPrimaryExp: 55 @@ -15802,7 +16464,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 55 [DEBUG] visitUnaryExp: 55 @@ -15817,7 +16479,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 56 [DEBUG] visitPrimaryExp: 56 @@ -15826,7 +16488,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 56 [DEBUG] visitUnaryExp: 56 @@ -15841,7 +16503,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 57 [DEBUG] visitPrimaryExp: 57 @@ -15850,7 +16512,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 57 [DEBUG] visitUnaryExp: 57 @@ -15865,7 +16527,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 58 [DEBUG] visitPrimaryExp: 58 @@ -15874,7 +16536,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 58 [DEBUG] visitUnaryExp: 58 @@ -15889,7 +16551,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 59 [DEBUG] visitPrimaryExp: 59 @@ -15898,7 +16560,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 59 [DEBUG] visitUnaryExp: 59 @@ -15913,7 +16575,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 60 [DEBUG] visitPrimaryExp: 60 @@ -15922,7 +16584,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 60 [DEBUG] visitUnaryExp: 60 @@ -15937,7 +16599,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 61 [DEBUG] visitPrimaryExp: 61 @@ -15946,7 +16608,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 61 [DEBUG] visitUnaryExp: 61 @@ -15961,7 +16623,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 62 [DEBUG] visitPrimaryExp: 62 @@ -15970,7 +16632,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 62 [DEBUG] visitUnaryExp: 62 @@ -15985,7 +16647,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 63 [DEBUG] visitPrimaryExp: 63 @@ -15994,7 +16656,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 63 [DEBUG] visitUnaryExp: 63 @@ -16009,7 +16671,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 64 [DEBUG] visitPrimaryExp: 64 @@ -16018,7 +16680,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 64 [DEBUG] visitUnaryExp: 64 @@ -16033,7 +16695,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 65 [DEBUG] visitPrimaryExp: 65 @@ -16042,7 +16704,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 65 [DEBUG] visitUnaryExp: 65 @@ -16057,7 +16719,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 66 [DEBUG] visitPrimaryExp: 66 @@ -16066,7 +16728,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 66 [DEBUG] visitUnaryExp: 66 @@ -16081,7 +16743,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 67 [DEBUG] visitPrimaryExp: 67 @@ -16090,7 +16752,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 67 [DEBUG] visitUnaryExp: 67 @@ -16105,7 +16767,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 68 [DEBUG] visitPrimaryExp: 68 @@ -16114,7 +16776,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 68 [DEBUG] visitUnaryExp: 68 @@ -16129,7 +16791,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 69 [DEBUG] visitPrimaryExp: 69 @@ -16138,7 +16800,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 69 [DEBUG] visitUnaryExp: 69 @@ -16153,7 +16815,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 70 [DEBUG] visitPrimaryExp: 70 @@ -16162,7 +16824,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 70 [DEBUG] visitUnaryExp: 70 @@ -16177,7 +16839,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 71 [DEBUG] visitPrimaryExp: 71 @@ -16186,7 +16848,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 71 [DEBUG] visitUnaryExp: 71 @@ -16201,7 +16863,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 72 [DEBUG] visitPrimaryExp: 72 @@ -16210,7 +16872,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 72 [DEBUG] visitUnaryExp: 72 @@ -16225,7 +16887,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 73 [DEBUG] visitPrimaryExp: 73 @@ -16234,7 +16896,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 73 [DEBUG] visitUnaryExp: 73 @@ -16249,7 +16911,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 74 [DEBUG] visitPrimaryExp: 74 @@ -16258,7 +16920,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 74 [DEBUG] visitUnaryExp: 74 @@ -16273,7 +16935,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 75 [DEBUG] visitPrimaryExp: 75 @@ -16282,7 +16944,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 75 [DEBUG] visitUnaryExp: 75 @@ -16297,7 +16959,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 76 [DEBUG] visitPrimaryExp: 76 @@ -16306,7 +16968,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 76 [DEBUG] visitUnaryExp: 76 @@ -16321,7 +16983,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 77 [DEBUG] visitPrimaryExp: 77 @@ -16330,7 +16992,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 77 [DEBUG] visitUnaryExp: 77 @@ -16345,7 +17007,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 78 [DEBUG] visitPrimaryExp: 78 @@ -16354,7 +17016,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 78 [DEBUG] visitUnaryExp: 78 @@ -16369,7 +17031,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 79 [DEBUG] visitPrimaryExp: 79 @@ -16378,7 +17040,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 79 [DEBUG] visitUnaryExp: 79 @@ -16393,7 +17055,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 80 [DEBUG] visitPrimaryExp: 80 @@ -16402,7 +17064,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 80 [DEBUG] visitUnaryExp: 80 @@ -16417,7 +17079,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 81 [DEBUG] visitPrimaryExp: 81 @@ -16426,7 +17088,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 81 [DEBUG] visitUnaryExp: 81 @@ -16441,7 +17103,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 82 [DEBUG] visitPrimaryExp: 82 @@ -16450,7 +17112,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 82 [DEBUG] visitUnaryExp: 82 @@ -16465,7 +17127,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 83 [DEBUG] visitPrimaryExp: 83 @@ -16474,7 +17136,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 83 [DEBUG] visitUnaryExp: 83 @@ -16489,7 +17151,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 84 [DEBUG] visitPrimaryExp: 84 @@ -16498,7 +17160,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 84 [DEBUG] visitUnaryExp: 84 @@ -16513,7 +17175,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 85 [DEBUG] visitPrimaryExp: 85 @@ -16522,7 +17184,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 85 [DEBUG] visitUnaryExp: 85 @@ -16537,7 +17199,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 86 [DEBUG] visitPrimaryExp: 86 @@ -16546,7 +17208,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 86 [DEBUG] visitUnaryExp: 86 @@ -16561,7 +17223,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 87 [DEBUG] visitPrimaryExp: 87 @@ -16570,7 +17232,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 87 [DEBUG] visitUnaryExp: 87 @@ -16585,7 +17247,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 88 [DEBUG] visitPrimaryExp: 88 @@ -16594,7 +17256,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 88 [DEBUG] visitUnaryExp: 88 @@ -16609,7 +17271,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 89 [DEBUG] visitPrimaryExp: 89 @@ -16618,7 +17280,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 89 [DEBUG] visitUnaryExp: 89 @@ -16633,7 +17295,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 90 [DEBUG] visitPrimaryExp: 90 @@ -16642,7 +17304,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 90 [DEBUG] visitUnaryExp: 90 @@ -16657,7 +17319,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 91 [DEBUG] visitPrimaryExp: 91 @@ -16666,7 +17328,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 91 [DEBUG] visitUnaryExp: 91 @@ -16681,7 +17343,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 92 [DEBUG] visitPrimaryExp: 92 @@ -16690,7 +17352,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 92 [DEBUG] visitUnaryExp: 92 @@ -16705,7 +17367,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 93 [DEBUG] visitPrimaryExp: 93 @@ -16714,7 +17376,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 93 [DEBUG] visitUnaryExp: 93 @@ -16729,7 +17391,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 94 [DEBUG] visitPrimaryExp: 94 @@ -16738,7 +17400,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 94 [DEBUG] visitUnaryExp: 94 @@ -16753,7 +17415,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 95 [DEBUG] visitPrimaryExp: 95 @@ -16762,7 +17424,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 95 [DEBUG] visitUnaryExp: 95 @@ -16777,7 +17439,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 96 [DEBUG] visitPrimaryExp: 96 @@ -16786,7 +17448,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 96 [DEBUG] visitUnaryExp: 96 @@ -16801,7 +17463,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 97 [DEBUG] visitPrimaryExp: 97 @@ -16810,7 +17472,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 97 [DEBUG] visitUnaryExp: 97 @@ -16825,7 +17487,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 98 [DEBUG] visitPrimaryExp: 98 @@ -16834,7 +17496,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 98 [DEBUG] visitUnaryExp: 98 @@ -16849,7 +17511,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x562c37cb7800, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x560d55a48800, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 99 [DEBUG] visitPrimaryExp: 99 @@ -16858,7 +17520,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: 99 [DEBUG] visitUnaryExp: 99 @@ -16871,7 +17533,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c37cb6c00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x560d55a47c00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -16879,7 +17541,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x562c37cb6c00, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x560d55a47c00, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -16895,7 +17557,7 @@ SymbolTable::addSymbol: stored m with kind=0, const_def_ctx=0 SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37d92510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 100 [DEBUG] visitPrimaryExp: 100 @@ -16904,7 +17566,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x562c37cb3580, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: sum+s[m] [DEBUG] visitUnaryExp: sum @@ -16912,14 +17574,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x562c37cb3580, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: s[m] [DEBUG] visitPrimaryExp: s[m] SymbolTable::lookup: found s in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = s, sym->kind = 0 绑定变量: s -> VarDefContext -CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x562c37cb8e70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: s, sym->kind: 0, sym->var_def_ctx: 0x560d55a49e70, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: m [DEBUG] visitUnaryExp: m @@ -16927,14 +17589,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37d92510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37d92510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: m+1 [DEBUG] visitUnaryExp: m @@ -16942,7 +17604,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found m in scope level 4, kind=0, const_def_ctx=0 CheckLValue: found sym->name = m, sym->kind = 0 绑定变量: m -> VarDefContext -CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x562c37d92510, sym->const_def_ctx: 0 +CheckLValue 绑定变量: m, sym->kind: 0, sym->var_def_ctx: 0x560d55b23510, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -16950,7 +17612,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x562c37cb3580, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: sum%65535 [DEBUG] visitUnaryExp: sum @@ -16958,7 +17620,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x562c37cb3580, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 65535 [DEBUG] visitPrimaryExp: 65535 @@ -16972,7 +17634,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x562c37cb3580, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x560d55a44580, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 func has_return: 1 return_type_is_void: 0 @@ -17010,7 +17672,7 @@ SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found loopcount in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = loopcount, sym->kind = 0 绑定变量: loopcount -> VarDefContext -CheckLValue 绑定变量: loopcount, sym->kind: 0, sym->var_def_ctx: 0x562c37d9b140, sym->const_def_ctx: 0 +CheckLValue 绑定变量: loopcount, sym->kind: 0, sym->var_def_ctx: 0x560d55b2c140, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -17045,6 +17707,11 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] 运行时库函数声明完成 [DEBUG IRGEN] visitCompUnit [DEBUG IRGEN] visitFuncDef: func +[DEBUG] visitFuncDef: 创建函数 func,返回类型: int,参数数量: 1 +[DEBUG] visitFuncDef: 函数对象地址: 0x560d55b3f320 +[DEBUG] visitFuncDef: 为函数 func 添加参数 n,类型: int32 +[DEBUG] visitFuncDef: 参数 n 处理完成 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {intsum=0;inti=200;intj=0;ints[100];intm=0;while(m<100){s[m]=0;m=m+1;}while(j1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;}returnsum;} [DEBUG IRGEN] visitBlockItem: intsum=0; [DEBUG] visitDecl: 开始处理声明 @@ -17054,9 +17721,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 sum -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 0 @@ -17064,10 +17728,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x562c37dae750 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 sum,初始值 0x562c37dae750 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: inti=200; @@ -17078,9 +17739,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 i -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 200 @@ -17088,11 +17746,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 200 [DEBUG IRGEN] visitPrimaryExp: 200 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 200 created as 0x562c37daa200 -[DEBUG] EvalExpr: success, result = 0x562c37daa200 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 i,初始值 0x562c37daa200 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] visitPrimaryExp: constant int 200 created as 0x560d55b3b200 +[DEBUG] EvalExpr: success, result = 0x560d55b3b200 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: intj=0; @@ -17103,9 +17758,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 j -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 0 @@ -17113,10 +17765,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x562c37dae750 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 j,初始值 0x562c37dae750 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: ints[100]; @@ -17127,14 +17776,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 s -[DEBUG] HandleLocalVariable: 处理局部数组变量 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 -[DEBUG] HandleLocalVariable: 数组总大小: 100 -[DEBUG] HandleLocalVariable: 为数组元素分配存储空间 -[DEBUG] HandleLocalVariable: 无初始化,全部初始化为0 -[DEBUG] HandleLocalVariable: 存储数组引用 -[DEBUG] HandleLocalVariable: 创建局部数组 s,维度 100,总大小 100 -[DEBUG] HandleLocalVariable: 局部变量处理完成 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: intm=0; @@ -17145,9 +17787,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 m -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 0 @@ -17155,10 +17794,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x562c37dae750 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 m,初始值 0x562c37dae750 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: while(m<100){s[m]=0;m=m+1;} @@ -17181,7 +17817,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 100 [DEBUG IRGEN] visitPrimaryExp: 100 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 100 created as 0x562c37dd4500 +[DEBUG] visitPrimaryExp: constant int 100 created as 0x560d55b651b0 +[DEBUG] visitRelExp: left=0x560d55b65130, type=int, right=0x560d55b651b0, type=int [DEBUG WHILE] condBlock has terminator: 1 [DEBUG WHILE] Generating body in block: while.body [DEBUG IRGEN] visitStmt: {s[m]=0;m=m+1;} @@ -17194,9 +17831,9 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x562c37dae750 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: m [DEBUG IRGEN] visitAddExp: m [DEBUG IRGEN] visitMulExp: m @@ -17204,7 +17841,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: m -[DEBUG] EvalExpr: success, result = 0x562c37dd4770 +[DEBUG] EvalExpr: success, result = 0x560d55b65420 [DEBUG] current insert block: while.body [DEBUG IRGEN] visitBlockItem: m=m+1; [DEBUG IRGEN] visitStmt: m=m+1; @@ -17220,12 +17857,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x562c37dd49f0 -[DEBUG] visitAddExp: left=0x562c37dd4970, right=0x562c37dd49f0 -[DEBUG] EvalExpr: success, result = 0x562c37dd4a50 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0 +[DEBUG] visitAddExp: left=0x560d55b65620, type=int, right=0x560d55b656a0, type=int +[DEBUG] EvalExpr: success, result = 0x560d55b65700 [DEBUG] HandleAssignStmt: assigning to m -[DEBUG] HandleAssignStmt: found in storage_map_ for m, ptr = 0x562c37dd40d0 -[DEBUG] HandleAssignStmt: scalar assignment to m, ptr = 0x562c37dd40d0, rhs = 0x562c37dd4a50 +[DEBUG] HandleAssignStmt: found in storage_map_ for m, ptr = 0x560d55b64e00 +[DEBUG] HandleAssignStmt: scalar assignment to m, ptr = 0x560d55b64e00, rhs = 0x560d55b65700 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -17262,6 +17899,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: n +[DEBUG] visitRelExp: left=0x560d55b659f0, type=int, right=0x560d55b65e90, type=int [DEBUG WHILE] condBlock has terminator: 1 [DEBUG WHILE] Generating body in block: while.body [DEBUG IRGEN] visitStmt: {if(i>1){s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}j=j+1;intm=0;while(m<100){sum=sum+s[m];m=m+1;}sum=sum%65535;} @@ -17282,7 +17920,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x562c37dd49f0 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0 +[DEBUG] visitRelExp: left=0x560d55b66130, type=int, right=0x560d55b656a0, type=int [DEBUG IF] Creating condbr: %t115 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[1]=1;if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17295,17 +17934,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x562c37dd49f0 -[DEBUG] EvalExpr: success, result = 0x562c37dd49f0 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0 +[DEBUG] EvalExpr: success, result = 0x560d55b656a0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 1 [DEBUG IRGEN] visitAddExp: 1 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x562c37dd49f0 -[DEBUG] EvalExpr: success, result = 0x562c37dd49f0 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0 +[DEBUG] EvalExpr: success, result = 0x560d55b656a0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>2){s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17323,7 +17962,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x562c37dd4d30 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x560d55b65990 +[DEBUG] visitRelExp: left=0x560d55b66a20, type=int, right=0x560d55b65990, type=int [DEBUG IF] Creating condbr: %t118 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[2]=2;if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17336,17 +17976,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x562c37dd4d30 -[DEBUG] EvalExpr: success, result = 0x562c37dd4d30 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x560d55b65990 +[DEBUG] EvalExpr: success, result = 0x560d55b65990 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 2 [DEBUG IRGEN] visitAddExp: 2 [DEBUG IRGEN] visitMulExp: 2 [DEBUG IRGEN] visitPrimaryExp: 2 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 2 created as 0x562c37dd4d30 -[DEBUG] EvalExpr: success, result = 0x562c37dd4d30 +[DEBUG] visitPrimaryExp: constant int 2 created as 0x560d55b65990 +[DEBUG] EvalExpr: success, result = 0x560d55b65990 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>3){s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17364,7 +18004,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x562c37dd60c0 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x560d55b66cb0 +[DEBUG] visitRelExp: left=0x560d55b67120, type=int, right=0x560d55b66cb0, type=int [DEBUG IF] Creating condbr: %t121 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[3]=3;if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17377,17 +18018,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x562c37dd60c0 -[DEBUG] EvalExpr: success, result = 0x562c37dd60c0 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x560d55b66cb0 +[DEBUG] EvalExpr: success, result = 0x560d55b66cb0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 3 [DEBUG IRGEN] visitAddExp: 3 [DEBUG IRGEN] visitMulExp: 3 [DEBUG IRGEN] visitPrimaryExp: 3 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 3 created as 0x562c37dd60c0 -[DEBUG] EvalExpr: success, result = 0x562c37dd60c0 +[DEBUG] visitPrimaryExp: constant int 3 created as 0x560d55b66cb0 +[DEBUG] EvalExpr: success, result = 0x560d55b66cb0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>4){s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17405,7 +18046,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 4 [DEBUG IRGEN] visitPrimaryExp: 4 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 4 created as 0x562c37dd6810 +[DEBUG] visitPrimaryExp: constant int 4 created as 0x560d55b67400 +[DEBUG] visitRelExp: left=0x560d55b67790, type=int, right=0x560d55b67400, type=int [DEBUG IF] Creating condbr: %t124 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[4]=4;if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17418,17 +18060,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 4 [DEBUG IRGEN] visitPrimaryExp: 4 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 4 created as 0x562c37dd6810 -[DEBUG] EvalExpr: success, result = 0x562c37dd6810 +[DEBUG] visitPrimaryExp: constant int 4 created as 0x560d55b67400 +[DEBUG] EvalExpr: success, result = 0x560d55b67400 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 4 [DEBUG IRGEN] visitAddExp: 4 [DEBUG IRGEN] visitMulExp: 4 [DEBUG IRGEN] visitPrimaryExp: 4 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 4 created as 0x562c37dd6810 -[DEBUG] EvalExpr: success, result = 0x562c37dd6810 +[DEBUG] visitPrimaryExp: constant int 4 created as 0x560d55b67400 +[DEBUG] EvalExpr: success, result = 0x560d55b67400 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>5){s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17446,7 +18088,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 5 [DEBUG IRGEN] visitPrimaryExp: 5 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 5 created as 0x562c37dd6f50 +[DEBUG] visitPrimaryExp: constant int 5 created as 0x560d55b67b40 +[DEBUG] visitRelExp: left=0x560d55b67fa0, type=int, right=0x560d55b67b40, type=int [DEBUG IF] Creating condbr: %t127 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[5]=5;if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17459,17 +18102,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 5 [DEBUG IRGEN] visitPrimaryExp: 5 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 5 created as 0x562c37dd6f50 -[DEBUG] EvalExpr: success, result = 0x562c37dd6f50 +[DEBUG] visitPrimaryExp: constant int 5 created as 0x560d55b67b40 +[DEBUG] EvalExpr: success, result = 0x560d55b67b40 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 5 [DEBUG IRGEN] visitAddExp: 5 [DEBUG IRGEN] visitMulExp: 5 [DEBUG IRGEN] visitPrimaryExp: 5 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 5 created as 0x562c37dd6f50 -[DEBUG] EvalExpr: success, result = 0x562c37dd6f50 +[DEBUG] visitPrimaryExp: constant int 5 created as 0x560d55b67b40 +[DEBUG] EvalExpr: success, result = 0x560d55b67b40 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>6){s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17487,7 +18130,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 6 [DEBUG IRGEN] visitPrimaryExp: 6 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 6 created as 0x562c37dd7690 +[DEBUG] visitPrimaryExp: constant int 6 created as 0x560d55b68280 +[DEBUG] visitRelExp: left=0x560d55b685f0, type=int, right=0x560d55b68280, type=int [DEBUG IF] Creating condbr: %t130 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[6]=6;if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17500,17 +18144,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 6 [DEBUG IRGEN] visitPrimaryExp: 6 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 6 created as 0x562c37dd7690 -[DEBUG] EvalExpr: success, result = 0x562c37dd7690 +[DEBUG] visitPrimaryExp: constant int 6 created as 0x560d55b68280 +[DEBUG] EvalExpr: success, result = 0x560d55b68280 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 6 [DEBUG IRGEN] visitAddExp: 6 [DEBUG IRGEN] visitMulExp: 6 [DEBUG IRGEN] visitPrimaryExp: 6 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 6 created as 0x562c37dd7690 -[DEBUG] EvalExpr: success, result = 0x562c37dd7690 +[DEBUG] visitPrimaryExp: constant int 6 created as 0x560d55b68280 +[DEBUG] EvalExpr: success, result = 0x560d55b68280 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>7){s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17528,7 +18172,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 7 [DEBUG IRGEN] visitPrimaryExp: 7 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 7 created as 0x562c37dd7ce0 +[DEBUG] visitPrimaryExp: constant int 7 created as 0x560d55b688d0 +[DEBUG] visitRelExp: left=0x560d55b68cd0, type=int, right=0x560d55b688d0, type=int [DEBUG IF] Creating condbr: %t133 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[7]=7;if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17541,17 +18186,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 7 [DEBUG IRGEN] visitPrimaryExp: 7 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 7 created as 0x562c37dd7ce0 -[DEBUG] EvalExpr: success, result = 0x562c37dd7ce0 +[DEBUG] visitPrimaryExp: constant int 7 created as 0x560d55b688d0 +[DEBUG] EvalExpr: success, result = 0x560d55b688d0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 7 [DEBUG IRGEN] visitAddExp: 7 [DEBUG IRGEN] visitMulExp: 7 [DEBUG IRGEN] visitPrimaryExp: 7 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 7 created as 0x562c37dd7ce0 -[DEBUG] EvalExpr: success, result = 0x562c37dd7ce0 +[DEBUG] visitPrimaryExp: constant int 7 created as 0x560d55b688d0 +[DEBUG] EvalExpr: success, result = 0x560d55b688d0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>8){s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17569,7 +18214,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 8 [DEBUG IRGEN] visitPrimaryExp: 8 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 8 created as 0x562c37dd83c0 +[DEBUG] visitPrimaryExp: constant int 8 created as 0x560d55b68fb0 +[DEBUG] visitRelExp: left=0x560d55b693b0, type=int, right=0x560d55b68fb0, type=int [DEBUG IF] Creating condbr: %t136 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[8]=8;if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17582,17 +18228,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 8 [DEBUG IRGEN] visitPrimaryExp: 8 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 8 created as 0x562c37dd83c0 -[DEBUG] EvalExpr: success, result = 0x562c37dd83c0 +[DEBUG] visitPrimaryExp: constant int 8 created as 0x560d55b68fb0 +[DEBUG] EvalExpr: success, result = 0x560d55b68fb0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 8 [DEBUG IRGEN] visitAddExp: 8 [DEBUG IRGEN] visitMulExp: 8 [DEBUG IRGEN] visitPrimaryExp: 8 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 8 created as 0x562c37dd83c0 -[DEBUG] EvalExpr: success, result = 0x562c37dd83c0 +[DEBUG] visitPrimaryExp: constant int 8 created as 0x560d55b68fb0 +[DEBUG] EvalExpr: success, result = 0x560d55b68fb0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>9){s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17610,7 +18256,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 9 [DEBUG IRGEN] visitPrimaryExp: 9 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 9 created as 0x562c37dd8c30 +[DEBUG] visitPrimaryExp: constant int 9 created as 0x560d55b69820 +[DEBUG] visitRelExp: left=0x560d55b69db0, type=int, right=0x560d55b69820, type=int [DEBUG IF] Creating condbr: %t139 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[9]=9;if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17623,17 +18270,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 9 [DEBUG IRGEN] visitPrimaryExp: 9 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 9 created as 0x562c37dd8c30 -[DEBUG] EvalExpr: success, result = 0x562c37dd8c30 +[DEBUG] visitPrimaryExp: constant int 9 created as 0x560d55b69820 +[DEBUG] EvalExpr: success, result = 0x560d55b69820 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 9 [DEBUG IRGEN] visitAddExp: 9 [DEBUG IRGEN] visitMulExp: 9 [DEBUG IRGEN] visitPrimaryExp: 9 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 9 created as 0x562c37dd8c30 -[DEBUG] EvalExpr: success, result = 0x562c37dd8c30 +[DEBUG] visitPrimaryExp: constant int 9 created as 0x560d55b69820 +[DEBUG] EvalExpr: success, result = 0x560d55b69820 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>10){s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17651,7 +18298,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x562c37dd94a0 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090 +[DEBUG] visitRelExp: left=0x560d55b6a490, type=int, right=0x560d55b6a090, type=int [DEBUG IF] Creating condbr: %t142 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[10]=10;if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17664,17 +18312,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x562c37dd94a0 -[DEBUG] EvalExpr: success, result = 0x562c37dd94a0 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090 +[DEBUG] EvalExpr: success, result = 0x560d55b6a090 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 10 [DEBUG IRGEN] visitAddExp: 10 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x562c37dd94a0 -[DEBUG] EvalExpr: success, result = 0x562c37dd94a0 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090 +[DEBUG] EvalExpr: success, result = 0x560d55b6a090 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>11){s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17692,7 +18340,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 11 [DEBUG IRGEN] visitPrimaryExp: 11 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 11 created as 0x562c37dd9b80 +[DEBUG] visitPrimaryExp: constant int 11 created as 0x560d55b6a770 +[DEBUG] visitRelExp: left=0x560d55b6ab70, type=int, right=0x560d55b6a770, type=int [DEBUG IF] Creating condbr: %t145 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[11]=11;if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17705,17 +18354,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 11 [DEBUG IRGEN] visitPrimaryExp: 11 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 11 created as 0x562c37dd9b80 -[DEBUG] EvalExpr: success, result = 0x562c37dd9b80 +[DEBUG] visitPrimaryExp: constant int 11 created as 0x560d55b6a770 +[DEBUG] EvalExpr: success, result = 0x560d55b6a770 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 11 [DEBUG IRGEN] visitAddExp: 11 [DEBUG IRGEN] visitMulExp: 11 [DEBUG IRGEN] visitPrimaryExp: 11 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 11 created as 0x562c37dd9b80 -[DEBUG] EvalExpr: success, result = 0x562c37dd9b80 +[DEBUG] visitPrimaryExp: constant int 11 created as 0x560d55b6a770 +[DEBUG] EvalExpr: success, result = 0x560d55b6a770 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>12){s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17733,7 +18382,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 12 [DEBUG IRGEN] visitPrimaryExp: 12 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 12 created as 0x562c37dda260 +[DEBUG] visitPrimaryExp: constant int 12 created as 0x560d55b6ae50 +[DEBUG] visitRelExp: left=0x560d55b6b1e0, type=int, right=0x560d55b6ae50, type=int [DEBUG IF] Creating condbr: %t148 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[12]=12;if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17746,17 +18396,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 12 [DEBUG IRGEN] visitPrimaryExp: 12 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 12 created as 0x562c37dda260 -[DEBUG] EvalExpr: success, result = 0x562c37dda260 +[DEBUG] visitPrimaryExp: constant int 12 created as 0x560d55b6ae50 +[DEBUG] EvalExpr: success, result = 0x560d55b6ae50 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 12 [DEBUG IRGEN] visitAddExp: 12 [DEBUG IRGEN] visitMulExp: 12 [DEBUG IRGEN] visitPrimaryExp: 12 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 12 created as 0x562c37dda260 -[DEBUG] EvalExpr: success, result = 0x562c37dda260 +[DEBUG] visitPrimaryExp: constant int 12 created as 0x560d55b6ae50 +[DEBUG] EvalExpr: success, result = 0x560d55b6ae50 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>13){s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17774,7 +18424,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 13 [DEBUG IRGEN] visitPrimaryExp: 13 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 13 created as 0x562c37dda8d0 +[DEBUG] visitPrimaryExp: constant int 13 created as 0x560d55b6b4c0 +[DEBUG] visitRelExp: left=0x560d55b6b8c0, type=int, right=0x560d55b6b4c0, type=int [DEBUG IF] Creating condbr: %t151 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[13]=13;if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17787,17 +18438,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 13 [DEBUG IRGEN] visitPrimaryExp: 13 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 13 created as 0x562c37dda8d0 -[DEBUG] EvalExpr: success, result = 0x562c37dda8d0 +[DEBUG] visitPrimaryExp: constant int 13 created as 0x560d55b6b4c0 +[DEBUG] EvalExpr: success, result = 0x560d55b6b4c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 13 [DEBUG IRGEN] visitAddExp: 13 [DEBUG IRGEN] visitMulExp: 13 [DEBUG IRGEN] visitPrimaryExp: 13 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 13 created as 0x562c37dda8d0 -[DEBUG] EvalExpr: success, result = 0x562c37dda8d0 +[DEBUG] visitPrimaryExp: constant int 13 created as 0x560d55b6b4c0 +[DEBUG] EvalExpr: success, result = 0x560d55b6b4c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>14){s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17815,7 +18466,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 14 [DEBUG IRGEN] visitPrimaryExp: 14 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 14 created as 0x562c37ddafb0 +[DEBUG] visitPrimaryExp: constant int 14 created as 0x560d55b6bba0 +[DEBUG] visitRelExp: left=0x560d55b6bfa0, type=int, right=0x560d55b6bba0, type=int [DEBUG IF] Creating condbr: %t154 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[14]=14;if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17828,17 +18480,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 14 [DEBUG IRGEN] visitPrimaryExp: 14 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 14 created as 0x562c37ddafb0 -[DEBUG] EvalExpr: success, result = 0x562c37ddafb0 +[DEBUG] visitPrimaryExp: constant int 14 created as 0x560d55b6bba0 +[DEBUG] EvalExpr: success, result = 0x560d55b6bba0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 14 [DEBUG IRGEN] visitAddExp: 14 [DEBUG IRGEN] visitMulExp: 14 [DEBUG IRGEN] visitPrimaryExp: 14 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 14 created as 0x562c37ddafb0 -[DEBUG] EvalExpr: success, result = 0x562c37ddafb0 +[DEBUG] visitPrimaryExp: constant int 14 created as 0x560d55b6bba0 +[DEBUG] EvalExpr: success, result = 0x560d55b6bba0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>15){s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17856,7 +18508,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 15 [DEBUG IRGEN] visitPrimaryExp: 15 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 15 created as 0x562c37ddb690 +[DEBUG] visitPrimaryExp: constant int 15 created as 0x560d55b6c280 +[DEBUG] visitRelExp: left=0x560d55b6c680, type=int, right=0x560d55b6c280, type=int [DEBUG IF] Creating condbr: %t157 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[15]=15;if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17869,17 +18522,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 15 [DEBUG IRGEN] visitPrimaryExp: 15 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 15 created as 0x562c37ddb690 -[DEBUG] EvalExpr: success, result = 0x562c37ddb690 +[DEBUG] visitPrimaryExp: constant int 15 created as 0x560d55b6c280 +[DEBUG] EvalExpr: success, result = 0x560d55b6c280 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 15 [DEBUG IRGEN] visitAddExp: 15 [DEBUG IRGEN] visitMulExp: 15 [DEBUG IRGEN] visitPrimaryExp: 15 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 15 created as 0x562c37ddb690 -[DEBUG] EvalExpr: success, result = 0x562c37ddb690 +[DEBUG] visitPrimaryExp: constant int 15 created as 0x560d55b6c280 +[DEBUG] EvalExpr: success, result = 0x560d55b6c280 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>16){s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17897,7 +18550,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 16 [DEBUG IRGEN] visitPrimaryExp: 16 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 16 created as 0x562c37ddbd70 +[DEBUG] visitPrimaryExp: constant int 16 created as 0x560d55b6c960 +[DEBUG] visitRelExp: left=0x560d55b6cd60, type=int, right=0x560d55b6c960, type=int [DEBUG IF] Creating condbr: %t160 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[16]=16;if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17910,17 +18564,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 16 [DEBUG IRGEN] visitPrimaryExp: 16 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 16 created as 0x562c37ddbd70 -[DEBUG] EvalExpr: success, result = 0x562c37ddbd70 +[DEBUG] visitPrimaryExp: constant int 16 created as 0x560d55b6c960 +[DEBUG] EvalExpr: success, result = 0x560d55b6c960 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 16 [DEBUG IRGEN] visitAddExp: 16 [DEBUG IRGEN] visitMulExp: 16 [DEBUG IRGEN] visitPrimaryExp: 16 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 16 created as 0x562c37ddbd70 -[DEBUG] EvalExpr: success, result = 0x562c37ddbd70 +[DEBUG] visitPrimaryExp: constant int 16 created as 0x560d55b6c960 +[DEBUG] EvalExpr: success, result = 0x560d55b6c960 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>17){s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17938,7 +18592,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 17 [DEBUG IRGEN] visitPrimaryExp: 17 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 17 created as 0x562c37ddc760 +[DEBUG] visitPrimaryExp: constant int 17 created as 0x560d55b6d350 +[DEBUG] visitRelExp: left=0x560d55b6da60, type=int, right=0x560d55b6d350, type=int [DEBUG IF] Creating condbr: %t163 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[17]=17;if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17951,17 +18606,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 17 [DEBUG IRGEN] visitPrimaryExp: 17 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 17 created as 0x562c37ddc760 -[DEBUG] EvalExpr: success, result = 0x562c37ddc760 +[DEBUG] visitPrimaryExp: constant int 17 created as 0x560d55b6d350 +[DEBUG] EvalExpr: success, result = 0x560d55b6d350 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 17 [DEBUG IRGEN] visitAddExp: 17 [DEBUG IRGEN] visitMulExp: 17 [DEBUG IRGEN] visitPrimaryExp: 17 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 17 created as 0x562c37ddc760 -[DEBUG] EvalExpr: success, result = 0x562c37ddc760 +[DEBUG] visitPrimaryExp: constant int 17 created as 0x560d55b6d350 +[DEBUG] EvalExpr: success, result = 0x560d55b6d350 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>18){s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17979,7 +18634,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 18 [DEBUG IRGEN] visitPrimaryExp: 18 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 18 created as 0x562c37ddd150 +[DEBUG] visitPrimaryExp: constant int 18 created as 0x560d55b6dd40 +[DEBUG] visitRelExp: left=0x560d55b6e140, type=int, right=0x560d55b6dd40, type=int [DEBUG IF] Creating condbr: %t166 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[18]=18;if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -17992,17 +18648,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 18 [DEBUG IRGEN] visitPrimaryExp: 18 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 18 created as 0x562c37ddd150 -[DEBUG] EvalExpr: success, result = 0x562c37ddd150 +[DEBUG] visitPrimaryExp: constant int 18 created as 0x560d55b6dd40 +[DEBUG] EvalExpr: success, result = 0x560d55b6dd40 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 18 [DEBUG IRGEN] visitAddExp: 18 [DEBUG IRGEN] visitMulExp: 18 [DEBUG IRGEN] visitPrimaryExp: 18 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 18 created as 0x562c37ddd150 -[DEBUG] EvalExpr: success, result = 0x562c37ddd150 +[DEBUG] visitPrimaryExp: constant int 18 created as 0x560d55b6dd40 +[DEBUG] EvalExpr: success, result = 0x560d55b6dd40 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>19){s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18020,7 +18676,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 19 [DEBUG IRGEN] visitPrimaryExp: 19 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 19 created as 0x562c37ddd830 +[DEBUG] visitPrimaryExp: constant int 19 created as 0x560d55b6e420 +[DEBUG] visitRelExp: left=0x560d55b6e820, type=int, right=0x560d55b6e420, type=int [DEBUG IF] Creating condbr: %t169 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[19]=19;if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18033,17 +18690,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 19 [DEBUG IRGEN] visitPrimaryExp: 19 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 19 created as 0x562c37ddd830 -[DEBUG] EvalExpr: success, result = 0x562c37ddd830 +[DEBUG] visitPrimaryExp: constant int 19 created as 0x560d55b6e420 +[DEBUG] EvalExpr: success, result = 0x560d55b6e420 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 19 [DEBUG IRGEN] visitAddExp: 19 [DEBUG IRGEN] visitMulExp: 19 [DEBUG IRGEN] visitPrimaryExp: 19 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 19 created as 0x562c37ddd830 -[DEBUG] EvalExpr: success, result = 0x562c37ddd830 +[DEBUG] visitPrimaryExp: constant int 19 created as 0x560d55b6e420 +[DEBUG] EvalExpr: success, result = 0x560d55b6e420 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>20){s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18061,7 +18718,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 20 [DEBUG IRGEN] visitPrimaryExp: 20 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 20 created as 0x562c37dddf10 +[DEBUG] visitPrimaryExp: constant int 20 created as 0x560d55b6eb00 +[DEBUG] visitRelExp: left=0x560d55b6ef00, type=int, right=0x560d55b6eb00, type=int [DEBUG IF] Creating condbr: %t172 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[20]=20;if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18074,17 +18732,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 20 [DEBUG IRGEN] visitPrimaryExp: 20 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 20 created as 0x562c37dddf10 -[DEBUG] EvalExpr: success, result = 0x562c37dddf10 +[DEBUG] visitPrimaryExp: constant int 20 created as 0x560d55b6eb00 +[DEBUG] EvalExpr: success, result = 0x560d55b6eb00 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 20 [DEBUG IRGEN] visitAddExp: 20 [DEBUG IRGEN] visitMulExp: 20 [DEBUG IRGEN] visitPrimaryExp: 20 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 20 created as 0x562c37dddf10 -[DEBUG] EvalExpr: success, result = 0x562c37dddf10 +[DEBUG] visitPrimaryExp: constant int 20 created as 0x560d55b6eb00 +[DEBUG] EvalExpr: success, result = 0x560d55b6eb00 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>21){s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18102,7 +18760,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 21 [DEBUG IRGEN] visitPrimaryExp: 21 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 21 created as 0x562c37dde5f0 +[DEBUG] visitPrimaryExp: constant int 21 created as 0x560d55b6f1e0 +[DEBUG] visitRelExp: left=0x560d55b6f5e0, type=int, right=0x560d55b6f1e0, type=int [DEBUG IF] Creating condbr: %t175 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[21]=21;if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18115,17 +18774,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 21 [DEBUG IRGEN] visitPrimaryExp: 21 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 21 created as 0x562c37dde5f0 -[DEBUG] EvalExpr: success, result = 0x562c37dde5f0 +[DEBUG] visitPrimaryExp: constant int 21 created as 0x560d55b6f1e0 +[DEBUG] EvalExpr: success, result = 0x560d55b6f1e0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 21 [DEBUG IRGEN] visitAddExp: 21 [DEBUG IRGEN] visitMulExp: 21 [DEBUG IRGEN] visitPrimaryExp: 21 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 21 created as 0x562c37dde5f0 -[DEBUG] EvalExpr: success, result = 0x562c37dde5f0 +[DEBUG] visitPrimaryExp: constant int 21 created as 0x560d55b6f1e0 +[DEBUG] EvalExpr: success, result = 0x560d55b6f1e0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>22){s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18143,7 +18802,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 22 [DEBUG IRGEN] visitPrimaryExp: 22 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 22 created as 0x562c37ddecd0 +[DEBUG] visitPrimaryExp: constant int 22 created as 0x560d55b6f8c0 +[DEBUG] visitRelExp: left=0x560d55b6fcc0, type=int, right=0x560d55b6f8c0, type=int [DEBUG IF] Creating condbr: %t178 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[22]=22;if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18156,17 +18816,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 22 [DEBUG IRGEN] visitPrimaryExp: 22 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 22 created as 0x562c37ddecd0 -[DEBUG] EvalExpr: success, result = 0x562c37ddecd0 +[DEBUG] visitPrimaryExp: constant int 22 created as 0x560d55b6f8c0 +[DEBUG] EvalExpr: success, result = 0x560d55b6f8c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 22 [DEBUG IRGEN] visitAddExp: 22 [DEBUG IRGEN] visitMulExp: 22 [DEBUG IRGEN] visitPrimaryExp: 22 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 22 created as 0x562c37ddecd0 -[DEBUG] EvalExpr: success, result = 0x562c37ddecd0 +[DEBUG] visitPrimaryExp: constant int 22 created as 0x560d55b6f8c0 +[DEBUG] EvalExpr: success, result = 0x560d55b6f8c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>23){s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18184,7 +18844,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 23 [DEBUG IRGEN] visitPrimaryExp: 23 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 23 created as 0x562c37ddf3b0 +[DEBUG] visitPrimaryExp: constant int 23 created as 0x560d55b6ffa0 +[DEBUG] visitRelExp: left=0x560d55b703a0, type=int, right=0x560d55b6ffa0, type=int [DEBUG IF] Creating condbr: %t181 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[23]=23;if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18197,17 +18858,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 23 [DEBUG IRGEN] visitPrimaryExp: 23 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 23 created as 0x562c37ddf3b0 -[DEBUG] EvalExpr: success, result = 0x562c37ddf3b0 +[DEBUG] visitPrimaryExp: constant int 23 created as 0x560d55b6ffa0 +[DEBUG] EvalExpr: success, result = 0x560d55b6ffa0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 23 [DEBUG IRGEN] visitAddExp: 23 [DEBUG IRGEN] visitMulExp: 23 [DEBUG IRGEN] visitPrimaryExp: 23 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 23 created as 0x562c37ddf3b0 -[DEBUG] EvalExpr: success, result = 0x562c37ddf3b0 +[DEBUG] visitPrimaryExp: constant int 23 created as 0x560d55b6ffa0 +[DEBUG] EvalExpr: success, result = 0x560d55b6ffa0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>24){s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18225,7 +18886,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 24 [DEBUG IRGEN] visitPrimaryExp: 24 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 24 created as 0x562c37ddfa90 +[DEBUG] visitPrimaryExp: constant int 24 created as 0x560d55b70680 +[DEBUG] visitRelExp: left=0x560d55b70a80, type=int, right=0x560d55b70680, type=int [DEBUG IF] Creating condbr: %t184 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[24]=24;if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18238,17 +18900,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 24 [DEBUG IRGEN] visitPrimaryExp: 24 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 24 created as 0x562c37ddfa90 -[DEBUG] EvalExpr: success, result = 0x562c37ddfa90 +[DEBUG] visitPrimaryExp: constant int 24 created as 0x560d55b70680 +[DEBUG] EvalExpr: success, result = 0x560d55b70680 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 24 [DEBUG IRGEN] visitAddExp: 24 [DEBUG IRGEN] visitMulExp: 24 [DEBUG IRGEN] visitPrimaryExp: 24 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 24 created as 0x562c37ddfa90 -[DEBUG] EvalExpr: success, result = 0x562c37ddfa90 +[DEBUG] visitPrimaryExp: constant int 24 created as 0x560d55b70680 +[DEBUG] EvalExpr: success, result = 0x560d55b70680 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>25){s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18266,7 +18928,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 25 [DEBUG IRGEN] visitPrimaryExp: 25 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 25 created as 0x562c37de0170 +[DEBUG] visitPrimaryExp: constant int 25 created as 0x560d55b70d60 +[DEBUG] visitRelExp: left=0x560d55b63170, type=int, right=0x560d55b70d60, type=int [DEBUG IF] Creating condbr: %t187 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[25]=25;if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18279,17 +18942,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 25 [DEBUG IRGEN] visitPrimaryExp: 25 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 25 created as 0x562c37de0170 -[DEBUG] EvalExpr: success, result = 0x562c37de0170 +[DEBUG] visitPrimaryExp: constant int 25 created as 0x560d55b70d60 +[DEBUG] EvalExpr: success, result = 0x560d55b70d60 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 25 [DEBUG IRGEN] visitAddExp: 25 [DEBUG IRGEN] visitMulExp: 25 [DEBUG IRGEN] visitPrimaryExp: 25 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 25 created as 0x562c37de0170 -[DEBUG] EvalExpr: success, result = 0x562c37de0170 +[DEBUG] visitPrimaryExp: constant int 25 created as 0x560d55b70d60 +[DEBUG] EvalExpr: success, result = 0x560d55b70d60 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>26){s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18307,7 +18970,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 26 [DEBUG IRGEN] visitPrimaryExp: 26 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 26 created as 0x562c37dd23d0 +[DEBUG] visitPrimaryExp: constant int 26 created as 0x560d55b63450 +[DEBUG] visitRelExp: left=0x560d55b63850, type=int, right=0x560d55b63450, type=int [DEBUG IF] Creating condbr: %t190 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[26]=26;if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18320,17 +18984,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 26 [DEBUG IRGEN] visitPrimaryExp: 26 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 26 created as 0x562c37dd23d0 -[DEBUG] EvalExpr: success, result = 0x562c37dd23d0 +[DEBUG] visitPrimaryExp: constant int 26 created as 0x560d55b63450 +[DEBUG] EvalExpr: success, result = 0x560d55b63450 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 26 [DEBUG IRGEN] visitAddExp: 26 [DEBUG IRGEN] visitMulExp: 26 [DEBUG IRGEN] visitPrimaryExp: 26 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 26 created as 0x562c37dd23d0 -[DEBUG] EvalExpr: success, result = 0x562c37dd23d0 +[DEBUG] visitPrimaryExp: constant int 26 created as 0x560d55b63450 +[DEBUG] EvalExpr: success, result = 0x560d55b63450 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>27){s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18348,7 +19012,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 27 [DEBUG IRGEN] visitPrimaryExp: 27 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 27 created as 0x562c37dd2ab0 +[DEBUG] visitPrimaryExp: constant int 27 created as 0x560d55b63b30 +[DEBUG] visitRelExp: left=0x560d55b72b20, type=int, right=0x560d55b63b30, type=int [DEBUG IF] Creating condbr: %t193 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[27]=27;if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18361,17 +19026,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 27 [DEBUG IRGEN] visitPrimaryExp: 27 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 27 created as 0x562c37dd2ab0 -[DEBUG] EvalExpr: success, result = 0x562c37dd2ab0 +[DEBUG] visitPrimaryExp: constant int 27 created as 0x560d55b63b30 +[DEBUG] EvalExpr: success, result = 0x560d55b63b30 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 27 [DEBUG IRGEN] visitAddExp: 27 [DEBUG IRGEN] visitMulExp: 27 [DEBUG IRGEN] visitPrimaryExp: 27 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 27 created as 0x562c37dd2ab0 -[DEBUG] EvalExpr: success, result = 0x562c37dd2ab0 +[DEBUG] visitPrimaryExp: constant int 27 created as 0x560d55b63b30 +[DEBUG] EvalExpr: success, result = 0x560d55b63b30 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>28){s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18389,7 +19054,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 28 [DEBUG IRGEN] visitPrimaryExp: 28 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 28 created as 0x562c37de2210 +[DEBUG] visitPrimaryExp: constant int 28 created as 0x560d55b72e00 +[DEBUG] visitRelExp: left=0x560d55b733e0, type=int, right=0x560d55b72e00, type=int [DEBUG IF] Creating condbr: %t196 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[28]=28;if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18402,17 +19068,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 28 [DEBUG IRGEN] visitPrimaryExp: 28 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 28 created as 0x562c37de2210 -[DEBUG] EvalExpr: success, result = 0x562c37de2210 +[DEBUG] visitPrimaryExp: constant int 28 created as 0x560d55b72e00 +[DEBUG] EvalExpr: success, result = 0x560d55b72e00 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 28 [DEBUG IRGEN] visitAddExp: 28 [DEBUG IRGEN] visitMulExp: 28 [DEBUG IRGEN] visitPrimaryExp: 28 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 28 created as 0x562c37de2210 -[DEBUG] EvalExpr: success, result = 0x562c37de2210 +[DEBUG] visitPrimaryExp: constant int 28 created as 0x560d55b72e00 +[DEBUG] EvalExpr: success, result = 0x560d55b72e00 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>29){s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18430,7 +19096,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 29 [DEBUG IRGEN] visitPrimaryExp: 29 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 29 created as 0x562c37de2ad0 +[DEBUG] visitPrimaryExp: constant int 29 created as 0x560d55b736c0 +[DEBUG] visitRelExp: left=0x560d55b73ac0, type=int, right=0x560d55b736c0, type=int [DEBUG IF] Creating condbr: %t199 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[29]=29;if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18443,17 +19110,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 29 [DEBUG IRGEN] visitPrimaryExp: 29 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 29 created as 0x562c37de2ad0 -[DEBUG] EvalExpr: success, result = 0x562c37de2ad0 +[DEBUG] visitPrimaryExp: constant int 29 created as 0x560d55b736c0 +[DEBUG] EvalExpr: success, result = 0x560d55b736c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 29 [DEBUG IRGEN] visitAddExp: 29 [DEBUG IRGEN] visitMulExp: 29 [DEBUG IRGEN] visitPrimaryExp: 29 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 29 created as 0x562c37de2ad0 -[DEBUG] EvalExpr: success, result = 0x562c37de2ad0 +[DEBUG] visitPrimaryExp: constant int 29 created as 0x560d55b736c0 +[DEBUG] EvalExpr: success, result = 0x560d55b736c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>30){s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18471,7 +19138,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 30 [DEBUG IRGEN] visitPrimaryExp: 30 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 30 created as 0x562c37de31b0 +[DEBUG] visitPrimaryExp: constant int 30 created as 0x560d55b73da0 +[DEBUG] visitRelExp: left=0x560d55b745b0, type=int, right=0x560d55b73da0, type=int [DEBUG IF] Creating condbr: %t202 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[30]=30;if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18484,17 +19152,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 30 [DEBUG IRGEN] visitPrimaryExp: 30 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 30 created as 0x562c37de31b0 -[DEBUG] EvalExpr: success, result = 0x562c37de31b0 +[DEBUG] visitPrimaryExp: constant int 30 created as 0x560d55b73da0 +[DEBUG] EvalExpr: success, result = 0x560d55b73da0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 30 [DEBUG IRGEN] visitAddExp: 30 [DEBUG IRGEN] visitMulExp: 30 [DEBUG IRGEN] visitPrimaryExp: 30 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 30 created as 0x562c37de31b0 -[DEBUG] EvalExpr: success, result = 0x562c37de31b0 +[DEBUG] visitPrimaryExp: constant int 30 created as 0x560d55b73da0 +[DEBUG] EvalExpr: success, result = 0x560d55b73da0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>31){s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18512,7 +19180,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 31 [DEBUG IRGEN] visitPrimaryExp: 31 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 31 created as 0x562c37de3ca0 +[DEBUG] visitPrimaryExp: constant int 31 created as 0x560d55b74890 +[DEBUG] visitRelExp: left=0x560d55b74c90, type=int, right=0x560d55b74890, type=int [DEBUG IF] Creating condbr: %t205 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[31]=31;if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18525,17 +19194,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 31 [DEBUG IRGEN] visitPrimaryExp: 31 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 31 created as 0x562c37de3ca0 -[DEBUG] EvalExpr: success, result = 0x562c37de3ca0 +[DEBUG] visitPrimaryExp: constant int 31 created as 0x560d55b74890 +[DEBUG] EvalExpr: success, result = 0x560d55b74890 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 31 [DEBUG IRGEN] visitAddExp: 31 [DEBUG IRGEN] visitMulExp: 31 [DEBUG IRGEN] visitPrimaryExp: 31 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 31 created as 0x562c37de3ca0 -[DEBUG] EvalExpr: success, result = 0x562c37de3ca0 +[DEBUG] visitPrimaryExp: constant int 31 created as 0x560d55b74890 +[DEBUG] EvalExpr: success, result = 0x560d55b74890 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>32){s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18553,7 +19222,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 32 [DEBUG IRGEN] visitPrimaryExp: 32 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 32 created as 0x562c37de4380 +[DEBUG] visitPrimaryExp: constant int 32 created as 0x560d55b74f70 +[DEBUG] visitRelExp: left=0x560d55b75980, type=int, right=0x560d55b74f70, type=int [DEBUG IF] Creating condbr: %t208 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[32]=32;if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18566,17 +19236,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 32 [DEBUG IRGEN] visitPrimaryExp: 32 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 32 created as 0x562c37de4380 -[DEBUG] EvalExpr: success, result = 0x562c37de4380 +[DEBUG] visitPrimaryExp: constant int 32 created as 0x560d55b74f70 +[DEBUG] EvalExpr: success, result = 0x560d55b74f70 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 32 [DEBUG IRGEN] visitAddExp: 32 [DEBUG IRGEN] visitMulExp: 32 [DEBUG IRGEN] visitPrimaryExp: 32 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 32 created as 0x562c37de4380 -[DEBUG] EvalExpr: success, result = 0x562c37de4380 +[DEBUG] visitPrimaryExp: constant int 32 created as 0x560d55b74f70 +[DEBUG] EvalExpr: success, result = 0x560d55b74f70 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>33){s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18594,7 +19264,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 33 [DEBUG IRGEN] visitPrimaryExp: 33 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 33 created as 0x562c37de5680 +[DEBUG] visitPrimaryExp: constant int 33 created as 0x560d55b76270 +[DEBUG] visitRelExp: left=0x560d55b76670, type=int, right=0x560d55b76270, type=int [DEBUG IF] Creating condbr: %t211 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[33]=33;if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18607,17 +19278,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 33 [DEBUG IRGEN] visitPrimaryExp: 33 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 33 created as 0x562c37de5680 -[DEBUG] EvalExpr: success, result = 0x562c37de5680 +[DEBUG] visitPrimaryExp: constant int 33 created as 0x560d55b76270 +[DEBUG] EvalExpr: success, result = 0x560d55b76270 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 33 [DEBUG IRGEN] visitAddExp: 33 [DEBUG IRGEN] visitMulExp: 33 [DEBUG IRGEN] visitPrimaryExp: 33 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 33 created as 0x562c37de5680 -[DEBUG] EvalExpr: success, result = 0x562c37de5680 +[DEBUG] visitPrimaryExp: constant int 33 created as 0x560d55b76270 +[DEBUG] EvalExpr: success, result = 0x560d55b76270 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>34){s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18635,7 +19306,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 34 [DEBUG IRGEN] visitPrimaryExp: 34 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 34 created as 0x562c37de5d60 +[DEBUG] visitPrimaryExp: constant int 34 created as 0x560d55b76950 +[DEBUG] visitRelExp: left=0x560d55b76d50, type=int, right=0x560d55b76950, type=int [DEBUG IF] Creating condbr: %t214 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[34]=34;if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18648,17 +19320,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 34 [DEBUG IRGEN] visitPrimaryExp: 34 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 34 created as 0x562c37de5d60 -[DEBUG] EvalExpr: success, result = 0x562c37de5d60 +[DEBUG] visitPrimaryExp: constant int 34 created as 0x560d55b76950 +[DEBUG] EvalExpr: success, result = 0x560d55b76950 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 34 [DEBUG IRGEN] visitAddExp: 34 [DEBUG IRGEN] visitMulExp: 34 [DEBUG IRGEN] visitPrimaryExp: 34 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 34 created as 0x562c37de5d60 -[DEBUG] EvalExpr: success, result = 0x562c37de5d60 +[DEBUG] visitPrimaryExp: constant int 34 created as 0x560d55b76950 +[DEBUG] EvalExpr: success, result = 0x560d55b76950 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>35){s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18676,7 +19348,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 35 [DEBUG IRGEN] visitPrimaryExp: 35 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 35 created as 0x562c37de6440 +[DEBUG] visitPrimaryExp: constant int 35 created as 0x560d55b77030 +[DEBUG] visitRelExp: left=0x560d55b77430, type=int, right=0x560d55b77030, type=int [DEBUG IF] Creating condbr: %t217 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[35]=35;if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18689,17 +19362,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 35 [DEBUG IRGEN] visitPrimaryExp: 35 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 35 created as 0x562c37de6440 -[DEBUG] EvalExpr: success, result = 0x562c37de6440 +[DEBUG] visitPrimaryExp: constant int 35 created as 0x560d55b77030 +[DEBUG] EvalExpr: success, result = 0x560d55b77030 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 35 [DEBUG IRGEN] visitAddExp: 35 [DEBUG IRGEN] visitMulExp: 35 [DEBUG IRGEN] visitPrimaryExp: 35 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 35 created as 0x562c37de6440 -[DEBUG] EvalExpr: success, result = 0x562c37de6440 +[DEBUG] visitPrimaryExp: constant int 35 created as 0x560d55b77030 +[DEBUG] EvalExpr: success, result = 0x560d55b77030 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>36){s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18717,7 +19390,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 36 [DEBUG IRGEN] visitPrimaryExp: 36 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 36 created as 0x562c37de6b20 +[DEBUG] visitPrimaryExp: constant int 36 created as 0x560d55b77710 +[DEBUG] visitRelExp: left=0x560d55b77b10, type=int, right=0x560d55b77710, type=int [DEBUG IF] Creating condbr: %t220 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[36]=36;if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18730,17 +19404,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 36 [DEBUG IRGEN] visitPrimaryExp: 36 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 36 created as 0x562c37de6b20 -[DEBUG] EvalExpr: success, result = 0x562c37de6b20 +[DEBUG] visitPrimaryExp: constant int 36 created as 0x560d55b77710 +[DEBUG] EvalExpr: success, result = 0x560d55b77710 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 36 [DEBUG IRGEN] visitAddExp: 36 [DEBUG IRGEN] visitMulExp: 36 [DEBUG IRGEN] visitPrimaryExp: 36 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 36 created as 0x562c37de6b20 -[DEBUG] EvalExpr: success, result = 0x562c37de6b20 +[DEBUG] visitPrimaryExp: constant int 36 created as 0x560d55b77710 +[DEBUG] EvalExpr: success, result = 0x560d55b77710 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>37){s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18758,7 +19432,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 37 [DEBUG IRGEN] visitPrimaryExp: 37 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 37 created as 0x562c37de7200 +[DEBUG] visitPrimaryExp: constant int 37 created as 0x560d55b77df0 +[DEBUG] visitRelExp: left=0x560d55b781f0, type=int, right=0x560d55b77df0, type=int [DEBUG IF] Creating condbr: %t223 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[37]=37;if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18771,17 +19446,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 37 [DEBUG IRGEN] visitPrimaryExp: 37 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 37 created as 0x562c37de7200 -[DEBUG] EvalExpr: success, result = 0x562c37de7200 +[DEBUG] visitPrimaryExp: constant int 37 created as 0x560d55b77df0 +[DEBUG] EvalExpr: success, result = 0x560d55b77df0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 37 [DEBUG IRGEN] visitAddExp: 37 [DEBUG IRGEN] visitMulExp: 37 [DEBUG IRGEN] visitPrimaryExp: 37 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 37 created as 0x562c37de7200 -[DEBUG] EvalExpr: success, result = 0x562c37de7200 +[DEBUG] visitPrimaryExp: constant int 37 created as 0x560d55b77df0 +[DEBUG] EvalExpr: success, result = 0x560d55b77df0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>38){s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18799,7 +19474,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 38 [DEBUG IRGEN] visitPrimaryExp: 38 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 38 created as 0x562c37de78e0 +[DEBUG] visitPrimaryExp: constant int 38 created as 0x560d55b784d0 +[DEBUG] visitRelExp: left=0x560d55b788d0, type=int, right=0x560d55b784d0, type=int [DEBUG IF] Creating condbr: %t226 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[38]=38;if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18812,17 +19488,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 38 [DEBUG IRGEN] visitPrimaryExp: 38 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 38 created as 0x562c37de78e0 -[DEBUG] EvalExpr: success, result = 0x562c37de78e0 +[DEBUG] visitPrimaryExp: constant int 38 created as 0x560d55b784d0 +[DEBUG] EvalExpr: success, result = 0x560d55b784d0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 38 [DEBUG IRGEN] visitAddExp: 38 [DEBUG IRGEN] visitMulExp: 38 [DEBUG IRGEN] visitPrimaryExp: 38 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 38 created as 0x562c37de78e0 -[DEBUG] EvalExpr: success, result = 0x562c37de78e0 +[DEBUG] visitPrimaryExp: constant int 38 created as 0x560d55b784d0 +[DEBUG] EvalExpr: success, result = 0x560d55b784d0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>39){s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18840,7 +19516,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 39 [DEBUG IRGEN] visitPrimaryExp: 39 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 39 created as 0x562c37de7fc0 +[DEBUG] visitPrimaryExp: constant int 39 created as 0x560d55b78bb0 +[DEBUG] visitRelExp: left=0x560d55b78fb0, type=int, right=0x560d55b78bb0, type=int [DEBUG IF] Creating condbr: %t229 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[39]=39;if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18853,17 +19530,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 39 [DEBUG IRGEN] visitPrimaryExp: 39 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 39 created as 0x562c37de7fc0 -[DEBUG] EvalExpr: success, result = 0x562c37de7fc0 +[DEBUG] visitPrimaryExp: constant int 39 created as 0x560d55b78bb0 +[DEBUG] EvalExpr: success, result = 0x560d55b78bb0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 39 [DEBUG IRGEN] visitAddExp: 39 [DEBUG IRGEN] visitMulExp: 39 [DEBUG IRGEN] visitPrimaryExp: 39 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 39 created as 0x562c37de7fc0 -[DEBUG] EvalExpr: success, result = 0x562c37de7fc0 +[DEBUG] visitPrimaryExp: constant int 39 created as 0x560d55b78bb0 +[DEBUG] EvalExpr: success, result = 0x560d55b78bb0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>40){s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18881,7 +19558,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 40 [DEBUG IRGEN] visitPrimaryExp: 40 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 40 created as 0x562c37de86a0 +[DEBUG] visitPrimaryExp: constant int 40 created as 0x560d55b79290 +[DEBUG] visitRelExp: left=0x560d55b79690, type=int, right=0x560d55b79290, type=int [DEBUG IF] Creating condbr: %t232 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[40]=40;if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18894,17 +19572,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 40 [DEBUG IRGEN] visitPrimaryExp: 40 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 40 created as 0x562c37de86a0 -[DEBUG] EvalExpr: success, result = 0x562c37de86a0 +[DEBUG] visitPrimaryExp: constant int 40 created as 0x560d55b79290 +[DEBUG] EvalExpr: success, result = 0x560d55b79290 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 40 [DEBUG IRGEN] visitAddExp: 40 [DEBUG IRGEN] visitMulExp: 40 [DEBUG IRGEN] visitPrimaryExp: 40 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 40 created as 0x562c37de86a0 -[DEBUG] EvalExpr: success, result = 0x562c37de86a0 +[DEBUG] visitPrimaryExp: constant int 40 created as 0x560d55b79290 +[DEBUG] EvalExpr: success, result = 0x560d55b79290 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>41){s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18922,7 +19600,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 41 [DEBUG IRGEN] visitPrimaryExp: 41 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 41 created as 0x562c37de8d80 +[DEBUG] visitPrimaryExp: constant int 41 created as 0x560d55b79970 +[DEBUG] visitRelExp: left=0x560d55b79d70, type=int, right=0x560d55b79970, type=int [DEBUG IF] Creating condbr: %t235 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[41]=41;if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18935,17 +19614,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 41 [DEBUG IRGEN] visitPrimaryExp: 41 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 41 created as 0x562c37de8d80 -[DEBUG] EvalExpr: success, result = 0x562c37de8d80 +[DEBUG] visitPrimaryExp: constant int 41 created as 0x560d55b79970 +[DEBUG] EvalExpr: success, result = 0x560d55b79970 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 41 [DEBUG IRGEN] visitAddExp: 41 [DEBUG IRGEN] visitMulExp: 41 [DEBUG IRGEN] visitPrimaryExp: 41 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 41 created as 0x562c37de8d80 -[DEBUG] EvalExpr: success, result = 0x562c37de8d80 +[DEBUG] visitPrimaryExp: constant int 41 created as 0x560d55b79970 +[DEBUG] EvalExpr: success, result = 0x560d55b79970 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>42){s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18963,7 +19642,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 42 [DEBUG IRGEN] visitPrimaryExp: 42 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 42 created as 0x562c37de9460 +[DEBUG] visitPrimaryExp: constant int 42 created as 0x560d55b7a050 +[DEBUG] visitRelExp: left=0x560d55b7a450, type=int, right=0x560d55b7a050, type=int [DEBUG IF] Creating condbr: %t238 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[42]=42;if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -18976,17 +19656,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 42 [DEBUG IRGEN] visitPrimaryExp: 42 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 42 created as 0x562c37de9460 -[DEBUG] EvalExpr: success, result = 0x562c37de9460 +[DEBUG] visitPrimaryExp: constant int 42 created as 0x560d55b7a050 +[DEBUG] EvalExpr: success, result = 0x560d55b7a050 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 42 [DEBUG IRGEN] visitAddExp: 42 [DEBUG IRGEN] visitMulExp: 42 [DEBUG IRGEN] visitPrimaryExp: 42 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 42 created as 0x562c37de9460 -[DEBUG] EvalExpr: success, result = 0x562c37de9460 +[DEBUG] visitPrimaryExp: constant int 42 created as 0x560d55b7a050 +[DEBUG] EvalExpr: success, result = 0x560d55b7a050 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>43){s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19004,7 +19684,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 43 [DEBUG IRGEN] visitPrimaryExp: 43 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 43 created as 0x562c37de9b40 +[DEBUG] visitPrimaryExp: constant int 43 created as 0x560d55b7a730 +[DEBUG] visitRelExp: left=0x560d55b7ab30, type=int, right=0x560d55b7a730, type=int [DEBUG IF] Creating condbr: %t241 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[43]=43;if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19017,17 +19698,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 43 [DEBUG IRGEN] visitPrimaryExp: 43 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 43 created as 0x562c37de9b40 -[DEBUG] EvalExpr: success, result = 0x562c37de9b40 +[DEBUG] visitPrimaryExp: constant int 43 created as 0x560d55b7a730 +[DEBUG] EvalExpr: success, result = 0x560d55b7a730 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 43 [DEBUG IRGEN] visitAddExp: 43 [DEBUG IRGEN] visitMulExp: 43 [DEBUG IRGEN] visitPrimaryExp: 43 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 43 created as 0x562c37de9b40 -[DEBUG] EvalExpr: success, result = 0x562c37de9b40 +[DEBUG] visitPrimaryExp: constant int 43 created as 0x560d55b7a730 +[DEBUG] EvalExpr: success, result = 0x560d55b7a730 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>44){s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19045,7 +19726,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 44 [DEBUG IRGEN] visitPrimaryExp: 44 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 44 created as 0x562c37dea220 +[DEBUG] visitPrimaryExp: constant int 44 created as 0x560d55b7ae10 +[DEBUG] visitRelExp: left=0x560d55b7b210, type=int, right=0x560d55b7ae10, type=int [DEBUG IF] Creating condbr: %t244 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[44]=44;if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19058,17 +19740,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 44 [DEBUG IRGEN] visitPrimaryExp: 44 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 44 created as 0x562c37dea220 -[DEBUG] EvalExpr: success, result = 0x562c37dea220 +[DEBUG] visitPrimaryExp: constant int 44 created as 0x560d55b7ae10 +[DEBUG] EvalExpr: success, result = 0x560d55b7ae10 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 44 [DEBUG IRGEN] visitAddExp: 44 [DEBUG IRGEN] visitMulExp: 44 [DEBUG IRGEN] visitPrimaryExp: 44 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 44 created as 0x562c37dea220 -[DEBUG] EvalExpr: success, result = 0x562c37dea220 +[DEBUG] visitPrimaryExp: constant int 44 created as 0x560d55b7ae10 +[DEBUG] EvalExpr: success, result = 0x560d55b7ae10 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>45){s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19086,7 +19768,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 45 [DEBUG IRGEN] visitPrimaryExp: 45 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 45 created as 0x562c37dea900 +[DEBUG] visitPrimaryExp: constant int 45 created as 0x560d55b7b4f0 +[DEBUG] visitRelExp: left=0x560d55b7b8f0, type=int, right=0x560d55b7b4f0, type=int [DEBUG IF] Creating condbr: %t247 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[45]=45;if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19099,17 +19782,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 45 [DEBUG IRGEN] visitPrimaryExp: 45 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 45 created as 0x562c37dea900 -[DEBUG] EvalExpr: success, result = 0x562c37dea900 +[DEBUG] visitPrimaryExp: constant int 45 created as 0x560d55b7b4f0 +[DEBUG] EvalExpr: success, result = 0x560d55b7b4f0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 45 [DEBUG IRGEN] visitAddExp: 45 [DEBUG IRGEN] visitMulExp: 45 [DEBUG IRGEN] visitPrimaryExp: 45 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 45 created as 0x562c37dea900 -[DEBUG] EvalExpr: success, result = 0x562c37dea900 +[DEBUG] visitPrimaryExp: constant int 45 created as 0x560d55b7b4f0 +[DEBUG] EvalExpr: success, result = 0x560d55b7b4f0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>46){s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19127,7 +19810,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 46 [DEBUG IRGEN] visitPrimaryExp: 46 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 46 created as 0x562c37deafe0 +[DEBUG] visitPrimaryExp: constant int 46 created as 0x560d55b7bbd0 +[DEBUG] visitRelExp: left=0x560d55b7bfd0, type=int, right=0x560d55b7bbd0, type=int [DEBUG IF] Creating condbr: %t250 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[46]=46;if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19140,17 +19824,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 46 [DEBUG IRGEN] visitPrimaryExp: 46 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 46 created as 0x562c37deafe0 -[DEBUG] EvalExpr: success, result = 0x562c37deafe0 +[DEBUG] visitPrimaryExp: constant int 46 created as 0x560d55b7bbd0 +[DEBUG] EvalExpr: success, result = 0x560d55b7bbd0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 46 [DEBUG IRGEN] visitAddExp: 46 [DEBUG IRGEN] visitMulExp: 46 [DEBUG IRGEN] visitPrimaryExp: 46 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 46 created as 0x562c37deafe0 -[DEBUG] EvalExpr: success, result = 0x562c37deafe0 +[DEBUG] visitPrimaryExp: constant int 46 created as 0x560d55b7bbd0 +[DEBUG] EvalExpr: success, result = 0x560d55b7bbd0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>47){s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19168,7 +19852,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 47 [DEBUG IRGEN] visitPrimaryExp: 47 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 47 created as 0x562c37deb6c0 +[DEBUG] visitPrimaryExp: constant int 47 created as 0x560d55b7c2b0 +[DEBUG] visitRelExp: left=0x560d55b7c6b0, type=int, right=0x560d55b7c2b0, type=int [DEBUG IF] Creating condbr: %t253 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[47]=47;if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19181,17 +19866,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 47 [DEBUG IRGEN] visitPrimaryExp: 47 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 47 created as 0x562c37deb6c0 -[DEBUG] EvalExpr: success, result = 0x562c37deb6c0 +[DEBUG] visitPrimaryExp: constant int 47 created as 0x560d55b7c2b0 +[DEBUG] EvalExpr: success, result = 0x560d55b7c2b0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 47 [DEBUG IRGEN] visitAddExp: 47 [DEBUG IRGEN] visitMulExp: 47 [DEBUG IRGEN] visitPrimaryExp: 47 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 47 created as 0x562c37deb6c0 -[DEBUG] EvalExpr: success, result = 0x562c37deb6c0 +[DEBUG] visitPrimaryExp: constant int 47 created as 0x560d55b7c2b0 +[DEBUG] EvalExpr: success, result = 0x560d55b7c2b0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>48){s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19209,7 +19894,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 48 [DEBUG IRGEN] visitPrimaryExp: 48 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 48 created as 0x562c37debda0 +[DEBUG] visitPrimaryExp: constant int 48 created as 0x560d55b7c990 +[DEBUG] visitRelExp: left=0x560d55b7cd90, type=int, right=0x560d55b7c990, type=int [DEBUG IF] Creating condbr: %t256 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[48]=48;if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19222,17 +19908,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 48 [DEBUG IRGEN] visitPrimaryExp: 48 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 48 created as 0x562c37debda0 -[DEBUG] EvalExpr: success, result = 0x562c37debda0 +[DEBUG] visitPrimaryExp: constant int 48 created as 0x560d55b7c990 +[DEBUG] EvalExpr: success, result = 0x560d55b7c990 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 48 [DEBUG IRGEN] visitAddExp: 48 [DEBUG IRGEN] visitMulExp: 48 [DEBUG IRGEN] visitPrimaryExp: 48 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 48 created as 0x562c37debda0 -[DEBUG] EvalExpr: success, result = 0x562c37debda0 +[DEBUG] visitPrimaryExp: constant int 48 created as 0x560d55b7c990 +[DEBUG] EvalExpr: success, result = 0x560d55b7c990 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>49){s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19250,7 +19936,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 49 [DEBUG IRGEN] visitPrimaryExp: 49 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 49 created as 0x562c37dec480 +[DEBUG] visitPrimaryExp: constant int 49 created as 0x560d55b7d070 +[DEBUG] visitRelExp: left=0x560d55b7d470, type=int, right=0x560d55b7d070, type=int [DEBUG IF] Creating condbr: %t259 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[49]=49;if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19263,17 +19950,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 49 [DEBUG IRGEN] visitPrimaryExp: 49 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 49 created as 0x562c37dec480 -[DEBUG] EvalExpr: success, result = 0x562c37dec480 +[DEBUG] visitPrimaryExp: constant int 49 created as 0x560d55b7d070 +[DEBUG] EvalExpr: success, result = 0x560d55b7d070 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 49 [DEBUG IRGEN] visitAddExp: 49 [DEBUG IRGEN] visitMulExp: 49 [DEBUG IRGEN] visitPrimaryExp: 49 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 49 created as 0x562c37dec480 -[DEBUG] EvalExpr: success, result = 0x562c37dec480 +[DEBUG] visitPrimaryExp: constant int 49 created as 0x560d55b7d070 +[DEBUG] EvalExpr: success, result = 0x560d55b7d070 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>50){s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19291,7 +19978,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 50 [DEBUG IRGEN] visitPrimaryExp: 50 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 50 created as 0x562c37decb60 +[DEBUG] visitPrimaryExp: constant int 50 created as 0x560d55b7d750 +[DEBUG] visitRelExp: left=0x560d55b7db50, type=int, right=0x560d55b7d750, type=int [DEBUG IF] Creating condbr: %t262 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[50]=50;if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19304,17 +19992,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 50 [DEBUG IRGEN] visitPrimaryExp: 50 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 50 created as 0x562c37decb60 -[DEBUG] EvalExpr: success, result = 0x562c37decb60 +[DEBUG] visitPrimaryExp: constant int 50 created as 0x560d55b7d750 +[DEBUG] EvalExpr: success, result = 0x560d55b7d750 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 50 [DEBUG IRGEN] visitAddExp: 50 [DEBUG IRGEN] visitMulExp: 50 [DEBUG IRGEN] visitPrimaryExp: 50 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 50 created as 0x562c37decb60 -[DEBUG] EvalExpr: success, result = 0x562c37decb60 +[DEBUG] visitPrimaryExp: constant int 50 created as 0x560d55b7d750 +[DEBUG] EvalExpr: success, result = 0x560d55b7d750 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>51){s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19332,7 +20020,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 51 [DEBUG IRGEN] visitPrimaryExp: 51 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 51 created as 0x562c37ded240 +[DEBUG] visitPrimaryExp: constant int 51 created as 0x560d55b7de30 +[DEBUG] visitRelExp: left=0x560d55b7e230, type=int, right=0x560d55b7de30, type=int [DEBUG IF] Creating condbr: %t265 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[51]=51;if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19345,17 +20034,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 51 [DEBUG IRGEN] visitPrimaryExp: 51 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 51 created as 0x562c37ded240 -[DEBUG] EvalExpr: success, result = 0x562c37ded240 +[DEBUG] visitPrimaryExp: constant int 51 created as 0x560d55b7de30 +[DEBUG] EvalExpr: success, result = 0x560d55b7de30 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 51 [DEBUG IRGEN] visitAddExp: 51 [DEBUG IRGEN] visitMulExp: 51 [DEBUG IRGEN] visitPrimaryExp: 51 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 51 created as 0x562c37ded240 -[DEBUG] EvalExpr: success, result = 0x562c37ded240 +[DEBUG] visitPrimaryExp: constant int 51 created as 0x560d55b7de30 +[DEBUG] EvalExpr: success, result = 0x560d55b7de30 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>52){s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19373,7 +20062,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 52 [DEBUG IRGEN] visitPrimaryExp: 52 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 52 created as 0x562c37ded920 +[DEBUG] visitPrimaryExp: constant int 52 created as 0x560d55b7e510 +[DEBUG] visitRelExp: left=0x560d55b7e910, type=int, right=0x560d55b7e510, type=int [DEBUG IF] Creating condbr: %t268 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[52]=52;if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19386,17 +20076,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 52 [DEBUG IRGEN] visitPrimaryExp: 52 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 52 created as 0x562c37ded920 -[DEBUG] EvalExpr: success, result = 0x562c37ded920 +[DEBUG] visitPrimaryExp: constant int 52 created as 0x560d55b7e510 +[DEBUG] EvalExpr: success, result = 0x560d55b7e510 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 52 [DEBUG IRGEN] visitAddExp: 52 [DEBUG IRGEN] visitMulExp: 52 [DEBUG IRGEN] visitPrimaryExp: 52 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 52 created as 0x562c37ded920 -[DEBUG] EvalExpr: success, result = 0x562c37ded920 +[DEBUG] visitPrimaryExp: constant int 52 created as 0x560d55b7e510 +[DEBUG] EvalExpr: success, result = 0x560d55b7e510 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>53){s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19414,7 +20104,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 53 [DEBUG IRGEN] visitPrimaryExp: 53 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 53 created as 0x562c37dee000 +[DEBUG] visitPrimaryExp: constant int 53 created as 0x560d55b7ebf0 +[DEBUG] visitRelExp: left=0x560d55b7eff0, type=int, right=0x560d55b7ebf0, type=int [DEBUG IF] Creating condbr: %t271 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[53]=53;if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19427,17 +20118,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 53 [DEBUG IRGEN] visitPrimaryExp: 53 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 53 created as 0x562c37dee000 -[DEBUG] EvalExpr: success, result = 0x562c37dee000 +[DEBUG] visitPrimaryExp: constant int 53 created as 0x560d55b7ebf0 +[DEBUG] EvalExpr: success, result = 0x560d55b7ebf0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 53 [DEBUG IRGEN] visitAddExp: 53 [DEBUG IRGEN] visitMulExp: 53 [DEBUG IRGEN] visitPrimaryExp: 53 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 53 created as 0x562c37dee000 -[DEBUG] EvalExpr: success, result = 0x562c37dee000 +[DEBUG] visitPrimaryExp: constant int 53 created as 0x560d55b7ebf0 +[DEBUG] EvalExpr: success, result = 0x560d55b7ebf0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>54){s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19455,7 +20146,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 54 [DEBUG IRGEN] visitPrimaryExp: 54 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 54 created as 0x562c37dee6e0 +[DEBUG] visitPrimaryExp: constant int 54 created as 0x560d55b7f2d0 +[DEBUG] visitRelExp: left=0x560d55b7f6d0, type=int, right=0x560d55b7f2d0, type=int [DEBUG IF] Creating condbr: %t274 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[54]=54;if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19468,17 +20160,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 54 [DEBUG IRGEN] visitPrimaryExp: 54 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 54 created as 0x562c37dee6e0 -[DEBUG] EvalExpr: success, result = 0x562c37dee6e0 +[DEBUG] visitPrimaryExp: constant int 54 created as 0x560d55b7f2d0 +[DEBUG] EvalExpr: success, result = 0x560d55b7f2d0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 54 [DEBUG IRGEN] visitAddExp: 54 [DEBUG IRGEN] visitMulExp: 54 [DEBUG IRGEN] visitPrimaryExp: 54 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 54 created as 0x562c37dee6e0 -[DEBUG] EvalExpr: success, result = 0x562c37dee6e0 +[DEBUG] visitPrimaryExp: constant int 54 created as 0x560d55b7f2d0 +[DEBUG] EvalExpr: success, result = 0x560d55b7f2d0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>55){s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19496,7 +20188,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 55 [DEBUG IRGEN] visitPrimaryExp: 55 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 55 created as 0x562c37deedc0 +[DEBUG] visitPrimaryExp: constant int 55 created as 0x560d55b7f9b0 +[DEBUG] visitRelExp: left=0x560d55b7fdb0, type=int, right=0x560d55b7f9b0, type=int [DEBUG IF] Creating condbr: %t277 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[55]=55;if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19509,17 +20202,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 55 [DEBUG IRGEN] visitPrimaryExp: 55 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 55 created as 0x562c37deedc0 -[DEBUG] EvalExpr: success, result = 0x562c37deedc0 +[DEBUG] visitPrimaryExp: constant int 55 created as 0x560d55b7f9b0 +[DEBUG] EvalExpr: success, result = 0x560d55b7f9b0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 55 [DEBUG IRGEN] visitAddExp: 55 [DEBUG IRGEN] visitMulExp: 55 [DEBUG IRGEN] visitPrimaryExp: 55 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 55 created as 0x562c37deedc0 -[DEBUG] EvalExpr: success, result = 0x562c37deedc0 +[DEBUG] visitPrimaryExp: constant int 55 created as 0x560d55b7f9b0 +[DEBUG] EvalExpr: success, result = 0x560d55b7f9b0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>56){s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19537,7 +20230,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 56 [DEBUG IRGEN] visitPrimaryExp: 56 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 56 created as 0x562c37def4a0 +[DEBUG] visitPrimaryExp: constant int 56 created as 0x560d55b80090 +[DEBUG] visitRelExp: left=0x560d55b80490, type=int, right=0x560d55b80090, type=int [DEBUG IF] Creating condbr: %t280 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[56]=56;if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19550,17 +20244,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 56 [DEBUG IRGEN] visitPrimaryExp: 56 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 56 created as 0x562c37def4a0 -[DEBUG] EvalExpr: success, result = 0x562c37def4a0 +[DEBUG] visitPrimaryExp: constant int 56 created as 0x560d55b80090 +[DEBUG] EvalExpr: success, result = 0x560d55b80090 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 56 [DEBUG IRGEN] visitAddExp: 56 [DEBUG IRGEN] visitMulExp: 56 [DEBUG IRGEN] visitPrimaryExp: 56 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 56 created as 0x562c37def4a0 -[DEBUG] EvalExpr: success, result = 0x562c37def4a0 +[DEBUG] visitPrimaryExp: constant int 56 created as 0x560d55b80090 +[DEBUG] EvalExpr: success, result = 0x560d55b80090 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>57){s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19578,7 +20272,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 57 [DEBUG IRGEN] visitPrimaryExp: 57 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 57 created as 0x562c37defb80 +[DEBUG] visitPrimaryExp: constant int 57 created as 0x560d55b80770 +[DEBUG] visitRelExp: left=0x560d55b80b70, type=int, right=0x560d55b80770, type=int [DEBUG IF] Creating condbr: %t283 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[57]=57;if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19591,17 +20286,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 57 [DEBUG IRGEN] visitPrimaryExp: 57 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 57 created as 0x562c37defb80 -[DEBUG] EvalExpr: success, result = 0x562c37defb80 +[DEBUG] visitPrimaryExp: constant int 57 created as 0x560d55b80770 +[DEBUG] EvalExpr: success, result = 0x560d55b80770 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 57 [DEBUG IRGEN] visitAddExp: 57 [DEBUG IRGEN] visitMulExp: 57 [DEBUG IRGEN] visitPrimaryExp: 57 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 57 created as 0x562c37defb80 -[DEBUG] EvalExpr: success, result = 0x562c37defb80 +[DEBUG] visitPrimaryExp: constant int 57 created as 0x560d55b80770 +[DEBUG] EvalExpr: success, result = 0x560d55b80770 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>58){s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19619,7 +20314,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 58 [DEBUG IRGEN] visitPrimaryExp: 58 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 58 created as 0x562c37df0260 +[DEBUG] visitPrimaryExp: constant int 58 created as 0x560d55b80e50 +[DEBUG] visitRelExp: left=0x560d55b81250, type=int, right=0x560d55b80e50, type=int [DEBUG IF] Creating condbr: %t286 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[58]=58;if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19632,17 +20328,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 58 [DEBUG IRGEN] visitPrimaryExp: 58 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 58 created as 0x562c37df0260 -[DEBUG] EvalExpr: success, result = 0x562c37df0260 +[DEBUG] visitPrimaryExp: constant int 58 created as 0x560d55b80e50 +[DEBUG] EvalExpr: success, result = 0x560d55b80e50 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 58 [DEBUG IRGEN] visitAddExp: 58 [DEBUG IRGEN] visitMulExp: 58 [DEBUG IRGEN] visitPrimaryExp: 58 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 58 created as 0x562c37df0260 -[DEBUG] EvalExpr: success, result = 0x562c37df0260 +[DEBUG] visitPrimaryExp: constant int 58 created as 0x560d55b80e50 +[DEBUG] EvalExpr: success, result = 0x560d55b80e50 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>59){s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19660,7 +20356,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 59 [DEBUG IRGEN] visitPrimaryExp: 59 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 59 created as 0x562c37df0940 +[DEBUG] visitPrimaryExp: constant int 59 created as 0x560d55b81530 +[DEBUG] visitRelExp: left=0x560d55b81930, type=int, right=0x560d55b81530, type=int [DEBUG IF] Creating condbr: %t289 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[59]=59;if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19673,17 +20370,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 59 [DEBUG IRGEN] visitPrimaryExp: 59 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 59 created as 0x562c37df0940 -[DEBUG] EvalExpr: success, result = 0x562c37df0940 +[DEBUG] visitPrimaryExp: constant int 59 created as 0x560d55b81530 +[DEBUG] EvalExpr: success, result = 0x560d55b81530 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 59 [DEBUG IRGEN] visitAddExp: 59 [DEBUG IRGEN] visitMulExp: 59 [DEBUG IRGEN] visitPrimaryExp: 59 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 59 created as 0x562c37df0940 -[DEBUG] EvalExpr: success, result = 0x562c37df0940 +[DEBUG] visitPrimaryExp: constant int 59 created as 0x560d55b81530 +[DEBUG] EvalExpr: success, result = 0x560d55b81530 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>60){s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19701,7 +20398,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 60 [DEBUG IRGEN] visitPrimaryExp: 60 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 60 created as 0x562c37df1020 +[DEBUG] visitPrimaryExp: constant int 60 created as 0x560d55b81c10 +[DEBUG] visitRelExp: left=0x560d55b82010, type=int, right=0x560d55b81c10, type=int [DEBUG IF] Creating condbr: %t292 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[60]=60;if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19714,17 +20412,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 60 [DEBUG IRGEN] visitPrimaryExp: 60 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 60 created as 0x562c37df1020 -[DEBUG] EvalExpr: success, result = 0x562c37df1020 +[DEBUG] visitPrimaryExp: constant int 60 created as 0x560d55b81c10 +[DEBUG] EvalExpr: success, result = 0x560d55b81c10 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 60 [DEBUG IRGEN] visitAddExp: 60 [DEBUG IRGEN] visitMulExp: 60 [DEBUG IRGEN] visitPrimaryExp: 60 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 60 created as 0x562c37df1020 -[DEBUG] EvalExpr: success, result = 0x562c37df1020 +[DEBUG] visitPrimaryExp: constant int 60 created as 0x560d55b81c10 +[DEBUG] EvalExpr: success, result = 0x560d55b81c10 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>61){s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19742,7 +20440,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 61 [DEBUG IRGEN] visitPrimaryExp: 61 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 61 created as 0x562c37df1700 +[DEBUG] visitPrimaryExp: constant int 61 created as 0x560d55b822f0 +[DEBUG] visitRelExp: left=0x560d55b826f0, type=int, right=0x560d55b822f0, type=int [DEBUG IF] Creating condbr: %t295 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[61]=61;if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19755,17 +20454,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 61 [DEBUG IRGEN] visitPrimaryExp: 61 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 61 created as 0x562c37df1700 -[DEBUG] EvalExpr: success, result = 0x562c37df1700 +[DEBUG] visitPrimaryExp: constant int 61 created as 0x560d55b822f0 +[DEBUG] EvalExpr: success, result = 0x560d55b822f0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 61 [DEBUG IRGEN] visitAddExp: 61 [DEBUG IRGEN] visitMulExp: 61 [DEBUG IRGEN] visitPrimaryExp: 61 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 61 created as 0x562c37df1700 -[DEBUG] EvalExpr: success, result = 0x562c37df1700 +[DEBUG] visitPrimaryExp: constant int 61 created as 0x560d55b822f0 +[DEBUG] EvalExpr: success, result = 0x560d55b822f0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>62){s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19783,7 +20482,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 62 [DEBUG IRGEN] visitPrimaryExp: 62 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 62 created as 0x562c37df25f0 +[DEBUG] visitPrimaryExp: constant int 62 created as 0x560d55b831e0 +[DEBUG] visitRelExp: left=0x560d55b835e0, type=int, right=0x560d55b831e0, type=int [DEBUG IF] Creating condbr: %t298 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[62]=62;if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19796,17 +20496,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 62 [DEBUG IRGEN] visitPrimaryExp: 62 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 62 created as 0x562c37df25f0 -[DEBUG] EvalExpr: success, result = 0x562c37df25f0 +[DEBUG] visitPrimaryExp: constant int 62 created as 0x560d55b831e0 +[DEBUG] EvalExpr: success, result = 0x560d55b831e0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 62 [DEBUG IRGEN] visitAddExp: 62 [DEBUG IRGEN] visitMulExp: 62 [DEBUG IRGEN] visitPrimaryExp: 62 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 62 created as 0x562c37df25f0 -[DEBUG] EvalExpr: success, result = 0x562c37df25f0 +[DEBUG] visitPrimaryExp: constant int 62 created as 0x560d55b831e0 +[DEBUG] EvalExpr: success, result = 0x560d55b831e0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>63){s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19824,7 +20524,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 63 [DEBUG IRGEN] visitPrimaryExp: 63 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 63 created as 0x562c37df2cd0 +[DEBUG] visitPrimaryExp: constant int 63 created as 0x560d55b838c0 +[DEBUG] visitRelExp: left=0x560d55b83cc0, type=int, right=0x560d55b838c0, type=int [DEBUG IF] Creating condbr: %t301 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[63]=63;if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19837,17 +20538,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 63 [DEBUG IRGEN] visitPrimaryExp: 63 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 63 created as 0x562c37df2cd0 -[DEBUG] EvalExpr: success, result = 0x562c37df2cd0 +[DEBUG] visitPrimaryExp: constant int 63 created as 0x560d55b838c0 +[DEBUG] EvalExpr: success, result = 0x560d55b838c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 63 [DEBUG IRGEN] visitAddExp: 63 [DEBUG IRGEN] visitMulExp: 63 [DEBUG IRGEN] visitPrimaryExp: 63 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 63 created as 0x562c37df2cd0 -[DEBUG] EvalExpr: success, result = 0x562c37df2cd0 +[DEBUG] visitPrimaryExp: constant int 63 created as 0x560d55b838c0 +[DEBUG] EvalExpr: success, result = 0x560d55b838c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>64){s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19865,7 +20566,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 64 [DEBUG IRGEN] visitPrimaryExp: 64 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 64 created as 0x562c37df33b0 +[DEBUG] visitPrimaryExp: constant int 64 created as 0x560d55b83fa0 +[DEBUG] visitRelExp: left=0x560d55b75370, type=int, right=0x560d55b83fa0, type=int [DEBUG IF] Creating condbr: %t304 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[64]=64;if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19878,17 +20580,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 64 [DEBUG IRGEN] visitPrimaryExp: 64 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 64 created as 0x562c37df33b0 -[DEBUG] EvalExpr: success, result = 0x562c37df33b0 +[DEBUG] visitPrimaryExp: constant int 64 created as 0x560d55b83fa0 +[DEBUG] EvalExpr: success, result = 0x560d55b83fa0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 64 [DEBUG IRGEN] visitAddExp: 64 [DEBUG IRGEN] visitMulExp: 64 [DEBUG IRGEN] visitPrimaryExp: 64 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 64 created as 0x562c37df33b0 -[DEBUG] EvalExpr: success, result = 0x562c37df33b0 +[DEBUG] visitPrimaryExp: constant int 64 created as 0x560d55b83fa0 +[DEBUG] EvalExpr: success, result = 0x560d55b83fa0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>65){s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19906,7 +20608,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 65 [DEBUG IRGEN] visitPrimaryExp: 65 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 65 created as 0x562c37de4a60 +[DEBUG] visitPrimaryExp: constant int 65 created as 0x560d55b75650 +[DEBUG] visitRelExp: left=0x560d55b75d40, type=int, right=0x560d55b75650, type=int [DEBUG IF] Creating condbr: %t307 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[65]=65;if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19919,17 +20622,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 65 [DEBUG IRGEN] visitPrimaryExp: 65 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 65 created as 0x562c37de4a60 -[DEBUG] EvalExpr: success, result = 0x562c37de4a60 +[DEBUG] visitPrimaryExp: constant int 65 created as 0x560d55b75650 +[DEBUG] EvalExpr: success, result = 0x560d55b75650 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 65 [DEBUG IRGEN] visitAddExp: 65 [DEBUG IRGEN] visitMulExp: 65 [DEBUG IRGEN] visitPrimaryExp: 65 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 65 created as 0x562c37de4a60 -[DEBUG] EvalExpr: success, result = 0x562c37de4a60 +[DEBUG] visitPrimaryExp: constant int 65 created as 0x560d55b75650 +[DEBUG] EvalExpr: success, result = 0x560d55b75650 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>66){s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19947,7 +20650,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 66 [DEBUG IRGEN] visitPrimaryExp: 66 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 66 created as 0x562c37de4bd0 +[DEBUG] visitPrimaryExp: constant int 66 created as 0x560d55b757c0 +[DEBUG] visitRelExp: left=0x560d55b85d60, type=int, right=0x560d55b757c0, type=int [DEBUG IF] Creating condbr: %t310 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[66]=66;if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19960,17 +20664,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 66 [DEBUG IRGEN] visitPrimaryExp: 66 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 66 created as 0x562c37de4bd0 -[DEBUG] EvalExpr: success, result = 0x562c37de4bd0 +[DEBUG] visitPrimaryExp: constant int 66 created as 0x560d55b757c0 +[DEBUG] EvalExpr: success, result = 0x560d55b757c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 66 [DEBUG IRGEN] visitAddExp: 66 [DEBUG IRGEN] visitMulExp: 66 [DEBUG IRGEN] visitPrimaryExp: 66 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 66 created as 0x562c37de4bd0 -[DEBUG] EvalExpr: success, result = 0x562c37de4bd0 +[DEBUG] visitPrimaryExp: constant int 66 created as 0x560d55b757c0 +[DEBUG] EvalExpr: success, result = 0x560d55b757c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>67){s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -19988,7 +20692,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 67 [DEBUG IRGEN] visitPrimaryExp: 67 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 67 created as 0x562c37df5450 +[DEBUG] visitPrimaryExp: constant int 67 created as 0x560d55b86040 +[DEBUG] visitRelExp: left=0x560d55b86440, type=int, right=0x560d55b86040, type=int [DEBUG IF] Creating condbr: %t313 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[67]=67;if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20001,17 +20706,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 67 [DEBUG IRGEN] visitPrimaryExp: 67 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 67 created as 0x562c37df5450 -[DEBUG] EvalExpr: success, result = 0x562c37df5450 +[DEBUG] visitPrimaryExp: constant int 67 created as 0x560d55b86040 +[DEBUG] EvalExpr: success, result = 0x560d55b86040 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 67 [DEBUG IRGEN] visitAddExp: 67 [DEBUG IRGEN] visitMulExp: 67 [DEBUG IRGEN] visitPrimaryExp: 67 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 67 created as 0x562c37df5450 -[DEBUG] EvalExpr: success, result = 0x562c37df5450 +[DEBUG] visitPrimaryExp: constant int 67 created as 0x560d55b86040 +[DEBUG] EvalExpr: success, result = 0x560d55b86040 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>68){s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20029,7 +20734,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 68 [DEBUG IRGEN] visitPrimaryExp: 68 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 68 created as 0x562c37df5b30 +[DEBUG] visitPrimaryExp: constant int 68 created as 0x560d55b86720 +[DEBUG] visitRelExp: left=0x560d55b86b20, type=int, right=0x560d55b86720, type=int [DEBUG IF] Creating condbr: %t316 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[68]=68;if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20042,17 +20748,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 68 [DEBUG IRGEN] visitPrimaryExp: 68 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 68 created as 0x562c37df5b30 -[DEBUG] EvalExpr: success, result = 0x562c37df5b30 +[DEBUG] visitPrimaryExp: constant int 68 created as 0x560d55b86720 +[DEBUG] EvalExpr: success, result = 0x560d55b86720 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 68 [DEBUG IRGEN] visitAddExp: 68 [DEBUG IRGEN] visitMulExp: 68 [DEBUG IRGEN] visitPrimaryExp: 68 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 68 created as 0x562c37df5b30 -[DEBUG] EvalExpr: success, result = 0x562c37df5b30 +[DEBUG] visitPrimaryExp: constant int 68 created as 0x560d55b86720 +[DEBUG] EvalExpr: success, result = 0x560d55b86720 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>69){s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20070,7 +20776,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 69 [DEBUG IRGEN] visitPrimaryExp: 69 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 69 created as 0x562c37df6210 +[DEBUG] visitPrimaryExp: constant int 69 created as 0x560d55b86e00 +[DEBUG] visitRelExp: left=0x560d55b87200, type=int, right=0x560d55b86e00, type=int [DEBUG IF] Creating condbr: %t319 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[69]=69;if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20083,17 +20790,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 69 [DEBUG IRGEN] visitPrimaryExp: 69 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 69 created as 0x562c37df6210 -[DEBUG] EvalExpr: success, result = 0x562c37df6210 +[DEBUG] visitPrimaryExp: constant int 69 created as 0x560d55b86e00 +[DEBUG] EvalExpr: success, result = 0x560d55b86e00 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 69 [DEBUG IRGEN] visitAddExp: 69 [DEBUG IRGEN] visitMulExp: 69 [DEBUG IRGEN] visitPrimaryExp: 69 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 69 created as 0x562c37df6210 -[DEBUG] EvalExpr: success, result = 0x562c37df6210 +[DEBUG] visitPrimaryExp: constant int 69 created as 0x560d55b86e00 +[DEBUG] EvalExpr: success, result = 0x560d55b86e00 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>70){s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20111,7 +20818,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 70 [DEBUG IRGEN] visitPrimaryExp: 70 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 70 created as 0x562c37df68f0 +[DEBUG] visitPrimaryExp: constant int 70 created as 0x560d55b874e0 +[DEBUG] visitRelExp: left=0x560d55b878e0, type=int, right=0x560d55b874e0, type=int [DEBUG IF] Creating condbr: %t322 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[70]=70;if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20124,17 +20832,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 70 [DEBUG IRGEN] visitPrimaryExp: 70 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 70 created as 0x562c37df68f0 -[DEBUG] EvalExpr: success, result = 0x562c37df68f0 +[DEBUG] visitPrimaryExp: constant int 70 created as 0x560d55b874e0 +[DEBUG] EvalExpr: success, result = 0x560d55b874e0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 70 [DEBUG IRGEN] visitAddExp: 70 [DEBUG IRGEN] visitMulExp: 70 [DEBUG IRGEN] visitPrimaryExp: 70 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 70 created as 0x562c37df68f0 -[DEBUG] EvalExpr: success, result = 0x562c37df68f0 +[DEBUG] visitPrimaryExp: constant int 70 created as 0x560d55b874e0 +[DEBUG] EvalExpr: success, result = 0x560d55b874e0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>71){s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20152,7 +20860,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 71 [DEBUG IRGEN] visitPrimaryExp: 71 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 71 created as 0x562c37df6fd0 +[DEBUG] visitPrimaryExp: constant int 71 created as 0x560d55b87bc0 +[DEBUG] visitRelExp: left=0x560d55b87fc0, type=int, right=0x560d55b87bc0, type=int [DEBUG IF] Creating condbr: %t325 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[71]=71;if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20165,17 +20874,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 71 [DEBUG IRGEN] visitPrimaryExp: 71 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 71 created as 0x562c37df6fd0 -[DEBUG] EvalExpr: success, result = 0x562c37df6fd0 +[DEBUG] visitPrimaryExp: constant int 71 created as 0x560d55b87bc0 +[DEBUG] EvalExpr: success, result = 0x560d55b87bc0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 71 [DEBUG IRGEN] visitAddExp: 71 [DEBUG IRGEN] visitMulExp: 71 [DEBUG IRGEN] visitPrimaryExp: 71 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 71 created as 0x562c37df6fd0 -[DEBUG] EvalExpr: success, result = 0x562c37df6fd0 +[DEBUG] visitPrimaryExp: constant int 71 created as 0x560d55b87bc0 +[DEBUG] EvalExpr: success, result = 0x560d55b87bc0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>72){s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20193,7 +20902,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 72 [DEBUG IRGEN] visitPrimaryExp: 72 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 72 created as 0x562c37df76b0 +[DEBUG] visitPrimaryExp: constant int 72 created as 0x560d55b882a0 +[DEBUG] visitRelExp: left=0x560d55b886a0, type=int, right=0x560d55b882a0, type=int [DEBUG IF] Creating condbr: %t328 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[72]=72;if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20206,17 +20916,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 72 [DEBUG IRGEN] visitPrimaryExp: 72 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 72 created as 0x562c37df76b0 -[DEBUG] EvalExpr: success, result = 0x562c37df76b0 +[DEBUG] visitPrimaryExp: constant int 72 created as 0x560d55b882a0 +[DEBUG] EvalExpr: success, result = 0x560d55b882a0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 72 [DEBUG IRGEN] visitAddExp: 72 [DEBUG IRGEN] visitMulExp: 72 [DEBUG IRGEN] visitPrimaryExp: 72 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 72 created as 0x562c37df76b0 -[DEBUG] EvalExpr: success, result = 0x562c37df76b0 +[DEBUG] visitPrimaryExp: constant int 72 created as 0x560d55b882a0 +[DEBUG] EvalExpr: success, result = 0x560d55b882a0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>73){s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20234,7 +20944,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 73 [DEBUG IRGEN] visitPrimaryExp: 73 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 73 created as 0x562c37df7d90 +[DEBUG] visitPrimaryExp: constant int 73 created as 0x560d55b88980 +[DEBUG] visitRelExp: left=0x560d55b88d80, type=int, right=0x560d55b88980, type=int [DEBUG IF] Creating condbr: %t331 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[73]=73;if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20247,17 +20958,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 73 [DEBUG IRGEN] visitPrimaryExp: 73 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 73 created as 0x562c37df7d90 -[DEBUG] EvalExpr: success, result = 0x562c37df7d90 +[DEBUG] visitPrimaryExp: constant int 73 created as 0x560d55b88980 +[DEBUG] EvalExpr: success, result = 0x560d55b88980 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 73 [DEBUG IRGEN] visitAddExp: 73 [DEBUG IRGEN] visitMulExp: 73 [DEBUG IRGEN] visitPrimaryExp: 73 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 73 created as 0x562c37df7d90 -[DEBUG] EvalExpr: success, result = 0x562c37df7d90 +[DEBUG] visitPrimaryExp: constant int 73 created as 0x560d55b88980 +[DEBUG] EvalExpr: success, result = 0x560d55b88980 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>74){s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20275,7 +20986,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 74 [DEBUG IRGEN] visitPrimaryExp: 74 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 74 created as 0x562c37df8470 +[DEBUG] visitPrimaryExp: constant int 74 created as 0x560d55b89060 +[DEBUG] visitRelExp: left=0x560d55b89460, type=int, right=0x560d55b89060, type=int [DEBUG IF] Creating condbr: %t334 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[74]=74;if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20288,17 +21000,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 74 [DEBUG IRGEN] visitPrimaryExp: 74 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 74 created as 0x562c37df8470 -[DEBUG] EvalExpr: success, result = 0x562c37df8470 +[DEBUG] visitPrimaryExp: constant int 74 created as 0x560d55b89060 +[DEBUG] EvalExpr: success, result = 0x560d55b89060 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 74 [DEBUG IRGEN] visitAddExp: 74 [DEBUG IRGEN] visitMulExp: 74 [DEBUG IRGEN] visitPrimaryExp: 74 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 74 created as 0x562c37df8470 -[DEBUG] EvalExpr: success, result = 0x562c37df8470 +[DEBUG] visitPrimaryExp: constant int 74 created as 0x560d55b89060 +[DEBUG] EvalExpr: success, result = 0x560d55b89060 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>75){s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20316,7 +21028,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 75 [DEBUG IRGEN] visitPrimaryExp: 75 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 75 created as 0x562c37df8b50 +[DEBUG] visitPrimaryExp: constant int 75 created as 0x560d55b89740 +[DEBUG] visitRelExp: left=0x560d55b89b40, type=int, right=0x560d55b89740, type=int [DEBUG IF] Creating condbr: %t337 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[75]=75;if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}}} @@ -20329,17 +21042,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 75 [DEBUG IRGEN] visitPrimaryExp: 75 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 75 created as 0x562c37df8b50 -[DEBUG] EvalExpr: success, result = 0x562c37df8b50 +[DEBUG] visitPrimaryExp: constant int 75 created as 0x560d55b89740 +[DEBUG] EvalExpr: success, result = 0x560d55b89740 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 75 [DEBUG IRGEN] visitAddExp: 75 [DEBUG IRGEN] visitMulExp: 75 [DEBUG IRGEN] visitPrimaryExp: 75 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 75 created as 0x562c37df8b50 -[DEBUG] EvalExpr: success, result = 0x562c37df8b50 +[DEBUG] visitPrimaryExp: constant int 75 created as 0x560d55b89740 +[DEBUG] EvalExpr: success, result = 0x560d55b89740 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>76){s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}} @@ -20357,7 +21070,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 76 [DEBUG IRGEN] visitPrimaryExp: 76 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 76 created as 0x562c37df9230 +[DEBUG] visitPrimaryExp: constant int 76 created as 0x560d55b89e20 +[DEBUG] visitRelExp: left=0x560d55b8a220, type=int, right=0x560d55b89e20, type=int [DEBUG IF] Creating condbr: %t340 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[76]=76;if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}}} @@ -20370,17 +21084,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 76 [DEBUG IRGEN] visitPrimaryExp: 76 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 76 created as 0x562c37df9230 -[DEBUG] EvalExpr: success, result = 0x562c37df9230 +[DEBUG] visitPrimaryExp: constant int 76 created as 0x560d55b89e20 +[DEBUG] EvalExpr: success, result = 0x560d55b89e20 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 76 [DEBUG IRGEN] visitAddExp: 76 [DEBUG IRGEN] visitMulExp: 76 [DEBUG IRGEN] visitPrimaryExp: 76 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 76 created as 0x562c37df9230 -[DEBUG] EvalExpr: success, result = 0x562c37df9230 +[DEBUG] visitPrimaryExp: constant int 76 created as 0x560d55b89e20 +[DEBUG] EvalExpr: success, result = 0x560d55b89e20 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>77){s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}} @@ -20398,7 +21112,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 77 [DEBUG IRGEN] visitPrimaryExp: 77 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 77 created as 0x562c37df9910 +[DEBUG] visitPrimaryExp: constant int 77 created as 0x560d55b8a500 +[DEBUG] visitRelExp: left=0x560d55b8a900, type=int, right=0x560d55b8a500, type=int [DEBUG IF] Creating condbr: %t343 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[77]=77;if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}}} @@ -20411,17 +21126,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 77 [DEBUG IRGEN] visitPrimaryExp: 77 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 77 created as 0x562c37df9910 -[DEBUG] EvalExpr: success, result = 0x562c37df9910 +[DEBUG] visitPrimaryExp: constant int 77 created as 0x560d55b8a500 +[DEBUG] EvalExpr: success, result = 0x560d55b8a500 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 77 [DEBUG IRGEN] visitAddExp: 77 [DEBUG IRGEN] visitMulExp: 77 [DEBUG IRGEN] visitPrimaryExp: 77 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 77 created as 0x562c37df9910 -[DEBUG] EvalExpr: success, result = 0x562c37df9910 +[DEBUG] visitPrimaryExp: constant int 77 created as 0x560d55b8a500 +[DEBUG] EvalExpr: success, result = 0x560d55b8a500 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>78){s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}} @@ -20439,7 +21154,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 78 [DEBUG IRGEN] visitPrimaryExp: 78 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 78 created as 0x562c37df9ff0 +[DEBUG] visitPrimaryExp: constant int 78 created as 0x560d55b8abe0 +[DEBUG] visitRelExp: left=0x560d55b8afe0, type=int, right=0x560d55b8abe0, type=int [DEBUG IF] Creating condbr: %t346 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[78]=78;if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}}} @@ -20452,17 +21168,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 78 [DEBUG IRGEN] visitPrimaryExp: 78 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 78 created as 0x562c37df9ff0 -[DEBUG] EvalExpr: success, result = 0x562c37df9ff0 +[DEBUG] visitPrimaryExp: constant int 78 created as 0x560d55b8abe0 +[DEBUG] EvalExpr: success, result = 0x560d55b8abe0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 78 [DEBUG IRGEN] visitAddExp: 78 [DEBUG IRGEN] visitMulExp: 78 [DEBUG IRGEN] visitPrimaryExp: 78 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 78 created as 0x562c37df9ff0 -[DEBUG] EvalExpr: success, result = 0x562c37df9ff0 +[DEBUG] visitPrimaryExp: constant int 78 created as 0x560d55b8abe0 +[DEBUG] EvalExpr: success, result = 0x560d55b8abe0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>79){s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}} @@ -20480,7 +21196,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 79 [DEBUG IRGEN] visitPrimaryExp: 79 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 79 created as 0x562c37dfa6d0 +[DEBUG] visitPrimaryExp: constant int 79 created as 0x560d55b8b2c0 +[DEBUG] visitRelExp: left=0x560d55b8b6c0, type=int, right=0x560d55b8b2c0, type=int [DEBUG IF] Creating condbr: %t349 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[79]=79;if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}}} @@ -20493,17 +21210,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 79 [DEBUG IRGEN] visitPrimaryExp: 79 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 79 created as 0x562c37dfa6d0 -[DEBUG] EvalExpr: success, result = 0x562c37dfa6d0 +[DEBUG] visitPrimaryExp: constant int 79 created as 0x560d55b8b2c0 +[DEBUG] EvalExpr: success, result = 0x560d55b8b2c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 79 [DEBUG IRGEN] visitAddExp: 79 [DEBUG IRGEN] visitMulExp: 79 [DEBUG IRGEN] visitPrimaryExp: 79 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 79 created as 0x562c37dfa6d0 -[DEBUG] EvalExpr: success, result = 0x562c37dfa6d0 +[DEBUG] visitPrimaryExp: constant int 79 created as 0x560d55b8b2c0 +[DEBUG] EvalExpr: success, result = 0x560d55b8b2c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>80){s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}} @@ -20521,7 +21238,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 80 [DEBUG IRGEN] visitPrimaryExp: 80 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 80 created as 0x562c37dfadb0 +[DEBUG] visitPrimaryExp: constant int 80 created as 0x560d55b8b9a0 +[DEBUG] visitRelExp: left=0x560d55b8bda0, type=int, right=0x560d55b8b9a0, type=int [DEBUG IF] Creating condbr: %t352 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[80]=80;if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}}} @@ -20534,17 +21252,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 80 [DEBUG IRGEN] visitPrimaryExp: 80 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 80 created as 0x562c37dfadb0 -[DEBUG] EvalExpr: success, result = 0x562c37dfadb0 +[DEBUG] visitPrimaryExp: constant int 80 created as 0x560d55b8b9a0 +[DEBUG] EvalExpr: success, result = 0x560d55b8b9a0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 80 [DEBUG IRGEN] visitAddExp: 80 [DEBUG IRGEN] visitMulExp: 80 [DEBUG IRGEN] visitPrimaryExp: 80 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 80 created as 0x562c37dfadb0 -[DEBUG] EvalExpr: success, result = 0x562c37dfadb0 +[DEBUG] visitPrimaryExp: constant int 80 created as 0x560d55b8b9a0 +[DEBUG] EvalExpr: success, result = 0x560d55b8b9a0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>81){s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}} @@ -20562,7 +21280,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 81 [DEBUG IRGEN] visitPrimaryExp: 81 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 81 created as 0x562c37dfb490 +[DEBUG] visitPrimaryExp: constant int 81 created as 0x560d55b8c080 +[DEBUG] visitRelExp: left=0x560d55b8c480, type=int, right=0x560d55b8c080, type=int [DEBUG IF] Creating condbr: %t355 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[81]=81;if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}}} @@ -20575,17 +21294,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 81 [DEBUG IRGEN] visitPrimaryExp: 81 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 81 created as 0x562c37dfb490 -[DEBUG] EvalExpr: success, result = 0x562c37dfb490 +[DEBUG] visitPrimaryExp: constant int 81 created as 0x560d55b8c080 +[DEBUG] EvalExpr: success, result = 0x560d55b8c080 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 81 [DEBUG IRGEN] visitAddExp: 81 [DEBUG IRGEN] visitMulExp: 81 [DEBUG IRGEN] visitPrimaryExp: 81 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 81 created as 0x562c37dfb490 -[DEBUG] EvalExpr: success, result = 0x562c37dfb490 +[DEBUG] visitPrimaryExp: constant int 81 created as 0x560d55b8c080 +[DEBUG] EvalExpr: success, result = 0x560d55b8c080 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>82){s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}} @@ -20603,7 +21322,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 82 [DEBUG IRGEN] visitPrimaryExp: 82 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 82 created as 0x562c37dfbb70 +[DEBUG] visitPrimaryExp: constant int 82 created as 0x560d55b8c760 +[DEBUG] visitRelExp: left=0x560d55b8cb60, type=int, right=0x560d55b8c760, type=int [DEBUG IF] Creating condbr: %t358 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[82]=82;if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}}} @@ -20616,17 +21336,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 82 [DEBUG IRGEN] visitPrimaryExp: 82 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 82 created as 0x562c37dfbb70 -[DEBUG] EvalExpr: success, result = 0x562c37dfbb70 +[DEBUG] visitPrimaryExp: constant int 82 created as 0x560d55b8c760 +[DEBUG] EvalExpr: success, result = 0x560d55b8c760 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 82 [DEBUG IRGEN] visitAddExp: 82 [DEBUG IRGEN] visitMulExp: 82 [DEBUG IRGEN] visitPrimaryExp: 82 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 82 created as 0x562c37dfbb70 -[DEBUG] EvalExpr: success, result = 0x562c37dfbb70 +[DEBUG] visitPrimaryExp: constant int 82 created as 0x560d55b8c760 +[DEBUG] EvalExpr: success, result = 0x560d55b8c760 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>83){s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}} @@ -20644,7 +21364,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 83 [DEBUG IRGEN] visitPrimaryExp: 83 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 83 created as 0x562c37dfc250 +[DEBUG] visitPrimaryExp: constant int 83 created as 0x560d55b8ce40 +[DEBUG] visitRelExp: left=0x560d55b8d240, type=int, right=0x560d55b8ce40, type=int [DEBUG IF] Creating condbr: %t361 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[83]=83;if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}}} @@ -20657,17 +21378,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 83 [DEBUG IRGEN] visitPrimaryExp: 83 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 83 created as 0x562c37dfc250 -[DEBUG] EvalExpr: success, result = 0x562c37dfc250 +[DEBUG] visitPrimaryExp: constant int 83 created as 0x560d55b8ce40 +[DEBUG] EvalExpr: success, result = 0x560d55b8ce40 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 83 [DEBUG IRGEN] visitAddExp: 83 [DEBUG IRGEN] visitMulExp: 83 [DEBUG IRGEN] visitPrimaryExp: 83 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 83 created as 0x562c37dfc250 -[DEBUG] EvalExpr: success, result = 0x562c37dfc250 +[DEBUG] visitPrimaryExp: constant int 83 created as 0x560d55b8ce40 +[DEBUG] EvalExpr: success, result = 0x560d55b8ce40 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>84){s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}} @@ -20685,7 +21406,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 84 [DEBUG IRGEN] visitPrimaryExp: 84 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 84 created as 0x562c37dfc930 +[DEBUG] visitPrimaryExp: constant int 84 created as 0x560d55b8d520 +[DEBUG] visitRelExp: left=0x560d55b8d920, type=int, right=0x560d55b8d520, type=int [DEBUG IF] Creating condbr: %t364 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[84]=84;if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}}} @@ -20698,17 +21420,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 84 [DEBUG IRGEN] visitPrimaryExp: 84 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 84 created as 0x562c37dfc930 -[DEBUG] EvalExpr: success, result = 0x562c37dfc930 +[DEBUG] visitPrimaryExp: constant int 84 created as 0x560d55b8d520 +[DEBUG] EvalExpr: success, result = 0x560d55b8d520 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 84 [DEBUG IRGEN] visitAddExp: 84 [DEBUG IRGEN] visitMulExp: 84 [DEBUG IRGEN] visitPrimaryExp: 84 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 84 created as 0x562c37dfc930 -[DEBUG] EvalExpr: success, result = 0x562c37dfc930 +[DEBUG] visitPrimaryExp: constant int 84 created as 0x560d55b8d520 +[DEBUG] EvalExpr: success, result = 0x560d55b8d520 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>85){s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}} @@ -20726,7 +21448,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 85 [DEBUG IRGEN] visitPrimaryExp: 85 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 85 created as 0x562c37dfd010 +[DEBUG] visitPrimaryExp: constant int 85 created as 0x560d55b8dc00 +[DEBUG] visitRelExp: left=0x560d55b8e000, type=int, right=0x560d55b8dc00, type=int [DEBUG IF] Creating condbr: %t367 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[85]=85;if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}}} @@ -20739,17 +21462,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 85 [DEBUG IRGEN] visitPrimaryExp: 85 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 85 created as 0x562c37dfd010 -[DEBUG] EvalExpr: success, result = 0x562c37dfd010 +[DEBUG] visitPrimaryExp: constant int 85 created as 0x560d55b8dc00 +[DEBUG] EvalExpr: success, result = 0x560d55b8dc00 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 85 [DEBUG IRGEN] visitAddExp: 85 [DEBUG IRGEN] visitMulExp: 85 [DEBUG IRGEN] visitPrimaryExp: 85 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 85 created as 0x562c37dfd010 -[DEBUG] EvalExpr: success, result = 0x562c37dfd010 +[DEBUG] visitPrimaryExp: constant int 85 created as 0x560d55b8dc00 +[DEBUG] EvalExpr: success, result = 0x560d55b8dc00 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>86){s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}} @@ -20767,7 +21490,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 86 [DEBUG IRGEN] visitPrimaryExp: 86 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 86 created as 0x562c37dfd6f0 +[DEBUG] visitPrimaryExp: constant int 86 created as 0x560d55b8e2e0 +[DEBUG] visitRelExp: left=0x560d55b8e6e0, type=int, right=0x560d55b8e2e0, type=int [DEBUG IF] Creating condbr: %t370 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[86]=86;if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}}} @@ -20780,17 +21504,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 86 [DEBUG IRGEN] visitPrimaryExp: 86 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 86 created as 0x562c37dfd6f0 -[DEBUG] EvalExpr: success, result = 0x562c37dfd6f0 +[DEBUG] visitPrimaryExp: constant int 86 created as 0x560d55b8e2e0 +[DEBUG] EvalExpr: success, result = 0x560d55b8e2e0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 86 [DEBUG IRGEN] visitAddExp: 86 [DEBUG IRGEN] visitMulExp: 86 [DEBUG IRGEN] visitPrimaryExp: 86 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 86 created as 0x562c37dfd6f0 -[DEBUG] EvalExpr: success, result = 0x562c37dfd6f0 +[DEBUG] visitPrimaryExp: constant int 86 created as 0x560d55b8e2e0 +[DEBUG] EvalExpr: success, result = 0x560d55b8e2e0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>87){s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}} @@ -20808,7 +21532,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 87 [DEBUG IRGEN] visitPrimaryExp: 87 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 87 created as 0x562c37dfddd0 +[DEBUG] visitPrimaryExp: constant int 87 created as 0x560d55b8e9c0 +[DEBUG] visitRelExp: left=0x560d55b8edc0, type=int, right=0x560d55b8e9c0, type=int [DEBUG IF] Creating condbr: %t373 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[87]=87;if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}}} @@ -20821,17 +21546,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 87 [DEBUG IRGEN] visitPrimaryExp: 87 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 87 created as 0x562c37dfddd0 -[DEBUG] EvalExpr: success, result = 0x562c37dfddd0 +[DEBUG] visitPrimaryExp: constant int 87 created as 0x560d55b8e9c0 +[DEBUG] EvalExpr: success, result = 0x560d55b8e9c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 87 [DEBUG IRGEN] visitAddExp: 87 [DEBUG IRGEN] visitMulExp: 87 [DEBUG IRGEN] visitPrimaryExp: 87 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 87 created as 0x562c37dfddd0 -[DEBUG] EvalExpr: success, result = 0x562c37dfddd0 +[DEBUG] visitPrimaryExp: constant int 87 created as 0x560d55b8e9c0 +[DEBUG] EvalExpr: success, result = 0x560d55b8e9c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>88){s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}} @@ -20849,7 +21574,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 88 [DEBUG IRGEN] visitPrimaryExp: 88 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 88 created as 0x562c37dfe4b0 +[DEBUG] visitPrimaryExp: constant int 88 created as 0x560d55b8f0a0 +[DEBUG] visitRelExp: left=0x560d55b8f4a0, type=int, right=0x560d55b8f0a0, type=int [DEBUG IF] Creating condbr: %t376 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[88]=88;if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}}} @@ -20862,17 +21588,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 88 [DEBUG IRGEN] visitPrimaryExp: 88 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 88 created as 0x562c37dfe4b0 -[DEBUG] EvalExpr: success, result = 0x562c37dfe4b0 +[DEBUG] visitPrimaryExp: constant int 88 created as 0x560d55b8f0a0 +[DEBUG] EvalExpr: success, result = 0x560d55b8f0a0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 88 [DEBUG IRGEN] visitAddExp: 88 [DEBUG IRGEN] visitMulExp: 88 [DEBUG IRGEN] visitPrimaryExp: 88 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 88 created as 0x562c37dfe4b0 -[DEBUG] EvalExpr: success, result = 0x562c37dfe4b0 +[DEBUG] visitPrimaryExp: constant int 88 created as 0x560d55b8f0a0 +[DEBUG] EvalExpr: success, result = 0x560d55b8f0a0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>89){s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}} @@ -20890,7 +21616,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 89 [DEBUG IRGEN] visitPrimaryExp: 89 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 89 created as 0x562c37dfeb90 +[DEBUG] visitPrimaryExp: constant int 89 created as 0x560d55b8f780 +[DEBUG] visitRelExp: left=0x560d55b8fb80, type=int, right=0x560d55b8f780, type=int [DEBUG IF] Creating condbr: %t379 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[89]=89;if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}}} @@ -20903,17 +21630,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 89 [DEBUG IRGEN] visitPrimaryExp: 89 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 89 created as 0x562c37dfeb90 -[DEBUG] EvalExpr: success, result = 0x562c37dfeb90 +[DEBUG] visitPrimaryExp: constant int 89 created as 0x560d55b8f780 +[DEBUG] EvalExpr: success, result = 0x560d55b8f780 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 89 [DEBUG IRGEN] visitAddExp: 89 [DEBUG IRGEN] visitMulExp: 89 [DEBUG IRGEN] visitPrimaryExp: 89 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 89 created as 0x562c37dfeb90 -[DEBUG] EvalExpr: success, result = 0x562c37dfeb90 +[DEBUG] visitPrimaryExp: constant int 89 created as 0x560d55b8f780 +[DEBUG] EvalExpr: success, result = 0x560d55b8f780 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>90){s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}} @@ -20931,7 +21658,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 90 [DEBUG IRGEN] visitPrimaryExp: 90 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 90 created as 0x562c37dff270 +[DEBUG] visitPrimaryExp: constant int 90 created as 0x560d55b8fe60 +[DEBUG] visitRelExp: left=0x560d55b90260, type=int, right=0x560d55b8fe60, type=int [DEBUG IF] Creating condbr: %t382 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[90]=90;if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}}} @@ -20944,17 +21672,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 90 [DEBUG IRGEN] visitPrimaryExp: 90 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 90 created as 0x562c37dff270 -[DEBUG] EvalExpr: success, result = 0x562c37dff270 +[DEBUG] visitPrimaryExp: constant int 90 created as 0x560d55b8fe60 +[DEBUG] EvalExpr: success, result = 0x560d55b8fe60 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 90 [DEBUG IRGEN] visitAddExp: 90 [DEBUG IRGEN] visitMulExp: 90 [DEBUG IRGEN] visitPrimaryExp: 90 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 90 created as 0x562c37dff270 -[DEBUG] EvalExpr: success, result = 0x562c37dff270 +[DEBUG] visitPrimaryExp: constant int 90 created as 0x560d55b8fe60 +[DEBUG] EvalExpr: success, result = 0x560d55b8fe60 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>91){s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}} @@ -20972,7 +21700,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 91 [DEBUG IRGEN] visitPrimaryExp: 91 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 91 created as 0x562c37dff950 +[DEBUG] visitPrimaryExp: constant int 91 created as 0x560d55b90540 +[DEBUG] visitRelExp: left=0x560d55b90940, type=int, right=0x560d55b90540, type=int [DEBUG IF] Creating condbr: %t385 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[91]=91;if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}}} @@ -20985,17 +21714,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 91 [DEBUG IRGEN] visitPrimaryExp: 91 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 91 created as 0x562c37dff950 -[DEBUG] EvalExpr: success, result = 0x562c37dff950 +[DEBUG] visitPrimaryExp: constant int 91 created as 0x560d55b90540 +[DEBUG] EvalExpr: success, result = 0x560d55b90540 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 91 [DEBUG IRGEN] visitAddExp: 91 [DEBUG IRGEN] visitMulExp: 91 [DEBUG IRGEN] visitPrimaryExp: 91 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 91 created as 0x562c37dff950 -[DEBUG] EvalExpr: success, result = 0x562c37dff950 +[DEBUG] visitPrimaryExp: constant int 91 created as 0x560d55b90540 +[DEBUG] EvalExpr: success, result = 0x560d55b90540 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}} [DEBUG IRGEN] visitStmt: if(i>92){s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}} @@ -21013,7 +21742,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 92 [DEBUG IRGEN] visitPrimaryExp: 92 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 92 created as 0x562c37e00030 +[DEBUG] visitPrimaryExp: constant int 92 created as 0x560d55b90c20 +[DEBUG] visitRelExp: left=0x560d55b91020, type=int, right=0x560d55b90c20, type=int [DEBUG IF] Creating condbr: %t388 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[92]=92;if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}}} @@ -21026,17 +21756,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 92 [DEBUG IRGEN] visitPrimaryExp: 92 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 92 created as 0x562c37e00030 -[DEBUG] EvalExpr: success, result = 0x562c37e00030 +[DEBUG] visitPrimaryExp: constant int 92 created as 0x560d55b90c20 +[DEBUG] EvalExpr: success, result = 0x560d55b90c20 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 92 [DEBUG IRGEN] visitAddExp: 92 [DEBUG IRGEN] visitMulExp: 92 [DEBUG IRGEN] visitPrimaryExp: 92 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 92 created as 0x562c37e00030 -[DEBUG] EvalExpr: success, result = 0x562c37e00030 +[DEBUG] visitPrimaryExp: constant int 92 created as 0x560d55b90c20 +[DEBUG] EvalExpr: success, result = 0x560d55b90c20 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}} [DEBUG IRGEN] visitStmt: if(i>93){s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}} @@ -21054,7 +21784,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 93 [DEBUG IRGEN] visitPrimaryExp: 93 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 93 created as 0x562c37e00710 +[DEBUG] visitPrimaryExp: constant int 93 created as 0x560d55b91300 +[DEBUG] visitRelExp: left=0x560d55b91650, type=int, right=0x560d55b91300, type=int [DEBUG IF] Creating condbr: %t391 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[93]=93;if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}}} @@ -21067,17 +21798,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 93 [DEBUG IRGEN] visitPrimaryExp: 93 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 93 created as 0x562c37e00710 -[DEBUG] EvalExpr: success, result = 0x562c37e00710 +[DEBUG] visitPrimaryExp: constant int 93 created as 0x560d55b91300 +[DEBUG] EvalExpr: success, result = 0x560d55b91300 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 93 [DEBUG IRGEN] visitAddExp: 93 [DEBUG IRGEN] visitMulExp: 93 [DEBUG IRGEN] visitPrimaryExp: 93 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 93 created as 0x562c37e00710 -[DEBUG] EvalExpr: success, result = 0x562c37e00710 +[DEBUG] visitPrimaryExp: constant int 93 created as 0x560d55b91300 +[DEBUG] EvalExpr: success, result = 0x560d55b91300 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}} [DEBUG IRGEN] visitStmt: if(i>94){s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}} @@ -21095,7 +21826,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 94 [DEBUG IRGEN] visitPrimaryExp: 94 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 94 created as 0x562c37e00df0 +[DEBUG] visitPrimaryExp: constant int 94 created as 0x560d55b919e0 +[DEBUG] visitRelExp: left=0x560d55b91d30, type=int, right=0x560d55b919e0, type=int [DEBUG IF] Creating condbr: %t394 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[94]=94;if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}}} @@ -21108,17 +21840,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 94 [DEBUG IRGEN] visitPrimaryExp: 94 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 94 created as 0x562c37e00df0 -[DEBUG] EvalExpr: success, result = 0x562c37e00df0 +[DEBUG] visitPrimaryExp: constant int 94 created as 0x560d55b919e0 +[DEBUG] EvalExpr: success, result = 0x560d55b919e0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 94 [DEBUG IRGEN] visitAddExp: 94 [DEBUG IRGEN] visitMulExp: 94 [DEBUG IRGEN] visitPrimaryExp: 94 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 94 created as 0x562c37e00df0 -[DEBUG] EvalExpr: success, result = 0x562c37e00df0 +[DEBUG] visitPrimaryExp: constant int 94 created as 0x560d55b919e0 +[DEBUG] EvalExpr: success, result = 0x560d55b919e0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}} [DEBUG IRGEN] visitStmt: if(i>95){s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}} @@ -21136,7 +21868,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 95 [DEBUG IRGEN] visitPrimaryExp: 95 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 95 created as 0x562c37e014d0 +[DEBUG] visitPrimaryExp: constant int 95 created as 0x560d55b920c0 +[DEBUG] visitRelExp: left=0x560d55b924e0, type=int, right=0x560d55b920c0, type=int [DEBUG IF] Creating condbr: %t397 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[95]=95;if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}}} @@ -21149,17 +21882,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 95 [DEBUG IRGEN] visitPrimaryExp: 95 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 95 created as 0x562c37e014d0 -[DEBUG] EvalExpr: success, result = 0x562c37e014d0 +[DEBUG] visitPrimaryExp: constant int 95 created as 0x560d55b920c0 +[DEBUG] EvalExpr: success, result = 0x560d55b920c0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 95 [DEBUG IRGEN] visitAddExp: 95 [DEBUG IRGEN] visitMulExp: 95 [DEBUG IRGEN] visitPrimaryExp: 95 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 95 created as 0x562c37e014d0 -[DEBUG] EvalExpr: success, result = 0x562c37e014d0 +[DEBUG] visitPrimaryExp: constant int 95 created as 0x560d55b920c0 +[DEBUG] EvalExpr: success, result = 0x560d55b920c0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}} [DEBUG IRGEN] visitStmt: if(i>96){s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}} @@ -21177,7 +21910,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 96 [DEBUG IRGEN] visitPrimaryExp: 96 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 96 created as 0x562c37e01bb0 +[DEBUG] visitPrimaryExp: constant int 96 created as 0x560d55b927a0 +[DEBUG] visitRelExp: left=0x560d55b92b50, type=int, right=0x560d55b927a0, type=int [DEBUG IF] Creating condbr: %t400 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[96]=96;if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}}} @@ -21190,17 +21924,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 96 [DEBUG IRGEN] visitPrimaryExp: 96 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 96 created as 0x562c37e01bb0 -[DEBUG] EvalExpr: success, result = 0x562c37e01bb0 +[DEBUG] visitPrimaryExp: constant int 96 created as 0x560d55b927a0 +[DEBUG] EvalExpr: success, result = 0x560d55b927a0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 96 [DEBUG IRGEN] visitAddExp: 96 [DEBUG IRGEN] visitMulExp: 96 [DEBUG IRGEN] visitPrimaryExp: 96 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 96 created as 0x562c37e01bb0 -[DEBUG] EvalExpr: success, result = 0x562c37e01bb0 +[DEBUG] visitPrimaryExp: constant int 96 created as 0x560d55b927a0 +[DEBUG] EvalExpr: success, result = 0x560d55b927a0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}} [DEBUG IRGEN] visitStmt: if(i>97){s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}} @@ -21218,7 +21952,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 97 [DEBUG IRGEN] visitPrimaryExp: 97 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 97 created as 0x562c37e02660 +[DEBUG] visitPrimaryExp: constant int 97 created as 0x560d55b93250 +[DEBUG] visitRelExp: left=0x560d55b931d0, type=int, right=0x560d55b93250, type=int [DEBUG IF] Creating condbr: %t403 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[97]=97;if(i>98){s[98]=98;if(i>99){s[99]=99;}}} @@ -21231,17 +21966,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 97 [DEBUG IRGEN] visitPrimaryExp: 97 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 97 created as 0x562c37e02660 -[DEBUG] EvalExpr: success, result = 0x562c37e02660 +[DEBUG] visitPrimaryExp: constant int 97 created as 0x560d55b93250 +[DEBUG] EvalExpr: success, result = 0x560d55b93250 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 97 [DEBUG IRGEN] visitAddExp: 97 [DEBUG IRGEN] visitMulExp: 97 [DEBUG IRGEN] visitPrimaryExp: 97 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 97 created as 0x562c37e02660 -[DEBUG] EvalExpr: success, result = 0x562c37e02660 +[DEBUG] visitPrimaryExp: constant int 97 created as 0x560d55b93250 +[DEBUG] EvalExpr: success, result = 0x560d55b93250 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>98){s[98]=98;if(i>99){s[99]=99;}} [DEBUG IRGEN] visitStmt: if(i>98){s[98]=98;if(i>99){s[99]=99;}} @@ -21259,7 +21994,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 98 [DEBUG IRGEN] visitPrimaryExp: 98 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 98 created as 0x562c37e02cf0 +[DEBUG] visitPrimaryExp: constant int 98 created as 0x560d55b938e0 +[DEBUG] visitRelExp: left=0x560d55b93860, type=int, right=0x560d55b938e0, type=int [DEBUG IF] Creating condbr: %t406 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[98]=98;if(i>99){s[99]=99;}} @@ -21272,17 +22008,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 98 [DEBUG IRGEN] visitPrimaryExp: 98 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 98 created as 0x562c37e02cf0 -[DEBUG] EvalExpr: success, result = 0x562c37e02cf0 +[DEBUG] visitPrimaryExp: constant int 98 created as 0x560d55b938e0 +[DEBUG] EvalExpr: success, result = 0x560d55b938e0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 98 [DEBUG IRGEN] visitAddExp: 98 [DEBUG IRGEN] visitMulExp: 98 [DEBUG IRGEN] visitPrimaryExp: 98 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 98 created as 0x562c37e02cf0 -[DEBUG] EvalExpr: success, result = 0x562c37e02cf0 +[DEBUG] visitPrimaryExp: constant int 98 created as 0x560d55b938e0 +[DEBUG] EvalExpr: success, result = 0x560d55b938e0 [DEBUG] current insert block: then [DEBUG IRGEN] visitBlockItem: if(i>99){s[99]=99;} [DEBUG IRGEN] visitStmt: if(i>99){s[99]=99;} @@ -21300,7 +22036,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 99 [DEBUG IRGEN] visitPrimaryExp: 99 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 99 created as 0x562c37e033d0 +[DEBUG] visitPrimaryExp: constant int 99 created as 0x560d55b93fc0 +[DEBUG] visitRelExp: left=0x560d55b93f40, type=int, right=0x560d55b93fc0, type=int [DEBUG IF] Creating condbr: %t409 -> then, merge [DEBUG IF] Generating then branch in block: then [DEBUG IRGEN] visitStmt: {s[99]=99;} @@ -21313,17 +22050,17 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 99 [DEBUG IRGEN] visitPrimaryExp: 99 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 99 created as 0x562c37e033d0 -[DEBUG] EvalExpr: success, result = 0x562c37e033d0 +[DEBUG] visitPrimaryExp: constant int 99 created as 0x560d55b93fc0 +[DEBUG] EvalExpr: success, result = 0x560d55b93fc0 [DEBUG] HandleAssignStmt: assigning to s -[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x562c37dcbf00 +[DEBUG] HandleAssignStmt: found in storage_map_ for s, ptr = 0x560d55b5cf40 [DEBUG IRGEN] EvalExpr: 99 [DEBUG IRGEN] visitAddExp: 99 [DEBUG IRGEN] visitMulExp: 99 [DEBUG IRGEN] visitPrimaryExp: 99 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 99 created as 0x562c37e033d0 -[DEBUG] EvalExpr: success, result = 0x562c37e033d0 +[DEBUG] visitPrimaryExp: constant int 99 created as 0x560d55b93fc0 +[DEBUG] EvalExpr: success, result = 0x560d55b93fc0 [DEBUG] current insert block: then [DEBUG IF] then branch terminated: 0 [DEBUG IF] Adding br to merge block from then @@ -22032,12 +22769,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x562c37dd49f0 -[DEBUG] visitAddExp: left=0x562c37e07ce0, right=0x562c37dd49f0 -[DEBUG] EvalExpr: success, result = 0x562c37e07dd0 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0 +[DEBUG] visitAddExp: left=0x560d55b988d0, type=int, right=0x560d55b656a0, type=int +[DEBUG] EvalExpr: success, result = 0x560d55b989c0 [DEBUG] HandleAssignStmt: assigning to j -[DEBUG] HandleAssignStmt: found in storage_map_ for j, ptr = 0x562c37dcbd80 -[DEBUG] HandleAssignStmt: scalar assignment to j, ptr = 0x562c37dcbd80, rhs = 0x562c37e07dd0 +[DEBUG] HandleAssignStmt: found in storage_map_ for j, ptr = 0x560d55b5cd80 +[DEBUG] HandleAssignStmt: scalar assignment to j, ptr = 0x560d55b5cd80, rhs = 0x560d55b989c0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -22053,9 +22790,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 m -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: 0 @@ -22063,10 +22797,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x562c37dae750 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 m,初始值 0x562c37dae750 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: merge [DEBUG IRGEN] visitBlockItem: while(m<100){sum=sum+s[m];m=m+1;} @@ -22089,7 +22820,8 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 100 [DEBUG IRGEN] visitPrimaryExp: 100 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 100 created as 0x562c37dd4500 +[DEBUG] visitPrimaryExp: constant int 100 created as 0x560d55b651b0 +[DEBUG] visitRelExp: left=0x560d55b98f80, type=int, right=0x560d55b651b0, type=int [DEBUG WHILE] condBlock has terminator: 1 [DEBUG WHILE] Generating body in block: while.body [DEBUG IRGEN] visitStmt: {sum=sum+s[m];m=m+1;} @@ -22117,12 +22849,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: m -[DEBUG] EvalExpr: success, result = 0x562c37e086f0 -[DEBUG] visitAddExp: left=0x562c37e08630, right=0x562c37e08860 -[DEBUG] EvalExpr: success, result = 0x562c37e088e0 +[DEBUG] EvalExpr: success, result = 0x560d55b992e0 +[DEBUG] visitAddExp: left=0x560d55b99220, type=int, right=0x560d55b99450, type=int +[DEBUG] EvalExpr: success, result = 0x560d55b994d0 [DEBUG] HandleAssignStmt: assigning to sum -[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x562c37c6e670 -[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x562c37c6e670, rhs = 0x562c37e088e0 +[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x560d559ff670 +[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x560d559ff670, rhs = 0x560d55b994d0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -22144,12 +22876,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 1 [DEBUG IRGEN] visitPrimaryExp: 1 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 1 created as 0x562c37dd49f0 -[DEBUG] visitAddExp: left=0x562c37e08b40, right=0x562c37dd49f0 -[DEBUG] EvalExpr: success, result = 0x562c37e08bc0 +[DEBUG] visitPrimaryExp: constant int 1 created as 0x560d55b656a0 +[DEBUG] visitAddExp: left=0x560d55b99730, type=int, right=0x560d55b656a0, type=int +[DEBUG] EvalExpr: success, result = 0x560d55b997b0 [DEBUG] HandleAssignStmt: assigning to m -[DEBUG] HandleAssignStmt: found in storage_map_ for m, ptr = 0x562c37e07f40 -[DEBUG] HandleAssignStmt: scalar assignment to m, ptr = 0x562c37e07f40, rhs = 0x562c37e08bc0 +[DEBUG] HandleAssignStmt: found in storage_map_ for m, ptr = 0x560d55b98b30 +[DEBUG] HandleAssignStmt: scalar assignment to m, ptr = 0x560d55b98b30, rhs = 0x560d55b997b0 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -22177,11 +22909,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitLVal: sum [DEBUG IRGEN] visitPrimaryExp: 65535 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 65535 created as 0x562c37e08f20 -[DEBUG] EvalExpr: success, result = 0x562c37e08fa0 +[DEBUG] visitPrimaryExp: constant int 65535 created as 0x560d55b99b10 +[DEBUG] visitMulExp: left=0x560d55b99a90, type=int, right=0x560d55b99b10, type=int +[DEBUG] EvalExpr: success, result = 0x560d55b99b90 [DEBUG] HandleAssignStmt: assigning to sum -[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x562c37c6e670 -[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x562c37c6e670, rhs = 0x562c37e08fa0 +[DEBUG] HandleAssignStmt: found in storage_map_ for sum, ptr = 0x560d559ff670 +[DEBUG] HandleAssignStmt: scalar assignment to sum, ptr = 0x560d559ff670, rhs = 0x560d55b99b90 [DEBUG] Is int32: 0 [DEBUG] Is float: 0 [DEBUG] Is ptr int32: 1 @@ -22199,7 +22932,6 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitBlockItem: returnsum; [DEBUG IRGEN] visitStmt: returnsum; [DEBUG IRGEN] HandleReturnStmt: returnsum; -[DEBUG IRGEN] HandleReturnStmt eval exp: sum [DEBUG IRGEN] EvalExpr: sum [DEBUG IRGEN] visitAddExp: sum [DEBUG IRGEN] visitMulExp: sum @@ -22207,8 +22939,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: sum -[DEBUG] EvalExpr: success, result = 0x562c37e09240 +[DEBUG] EvalExpr: success, result = 0x560d55b99e30 +[DEBUG] visitFuncDef: 函数 func 生成完成 [DEBUG IRGEN] visitFuncDef: main +[DEBUG] visitFuncDef: 创建函数 main,返回类型: int,参数数量: 0 +[DEBUG] visitFuncDef: 函数对象地址: 0x560d55b99f90 +[DEBUG] visitFuncDef: 开始生成函数体 [DEBUG IRGEN] visitBlock: {starttime();intloopcount=getint();putint(func(loopcount));putch(10);stoptime();return0;} [DEBUG IRGEN] visitBlockItem: starttime(); [DEBUG IRGEN] visitStmt: starttime(); @@ -22216,7 +22952,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitAddExp: starttime() [DEBUG IRGEN] visitMulExp: starttime() [DEBUG IRGEN] visitCallExp: 调用函数 starttime -[DEBUG] EvalExpr: success, result = 0x562c37dae750 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: intloopcount=getint(); [DEBUG] visitDecl: 开始处理声明 @@ -22226,20 +22962,14 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理局部变量 [DEBUG] HandleLocalVariable: 开始处理局部变量 loopcount -[DEBUG] HandleLocalVariable: 处理局部标量变量 -[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽 -[DEBUG] HandleLocalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 [DEBUG] visitInitVal: 处理表达式初始化 [DEBUG IRGEN] EvalExpr: getint() [DEBUG IRGEN] visitAddExp: getint() [DEBUG IRGEN] visitMulExp: getint() [DEBUG IRGEN] visitCallExp: 调用函数 getint -[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x562c37e09560 -[DEBUG] EvalExpr: success, result = 0x562c37e09560 -[DEBUG] HandleLocalVariable: 获取到初始化值 -[DEBUG] HandleLocalVariable: 创建局部变量 loopcount,初始值 0x562c37e09560 -[DEBUG] HandleLocalVariable: 局部变量处理完成 +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x560d55b9a150 +[DEBUG] EvalExpr: success, result = 0x560d55b9a150 [DEBUG] visitDecl: 声明处理完成 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: putint(func(loopcount)); @@ -22259,12 +22989,12 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitPrimaryExp [DEBUG] visitPrimaryExp: visiting lVal [DEBUG] visitLVal: loopcount -[DEBUG] EvalExpr: success, result = 0x562c37e096b0 +[DEBUG] EvalExpr: success, result = 0x560d55b9a2a0 [DEBUG IRGEN] visitCallExp: 收集到 1 个参数 -[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x562c37e09750 -[DEBUG] EvalExpr: success, result = 0x562c37e09750 +[DEBUG IRGEN] visitCallExp: 函数调用完成,返回值 0x560d55b9a340 +[DEBUG] EvalExpr: success, result = 0x560d55b9a340 [DEBUG IRGEN] visitCallExp: 收集到 1 个参数 -[DEBUG] EvalExpr: success, result = 0x562c37dae750 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: putch(10); [DEBUG IRGEN] visitStmt: putch(10); @@ -22277,10 +23007,10 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 10 [DEBUG IRGEN] visitPrimaryExp: 10 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 10 created as 0x562c37dd94a0 -[DEBUG] EvalExpr: success, result = 0x562c37dd94a0 +[DEBUG] visitPrimaryExp: constant int 10 created as 0x560d55b6a090 +[DEBUG] EvalExpr: success, result = 0x560d55b6a090 [DEBUG IRGEN] visitCallExp: 收集到 1 个参数 -[DEBUG] EvalExpr: success, result = 0x562c37dae750 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: stoptime(); [DEBUG IRGEN] visitStmt: stoptime(); @@ -22288,18 +23018,18 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitAddExp: stoptime() [DEBUG IRGEN] visitMulExp: stoptime() [DEBUG IRGEN] visitCallExp: 调用函数 stoptime -[DEBUG] EvalExpr: success, result = 0x562c37dae750 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 [DEBUG] current insert block: entry [DEBUG IRGEN] visitBlockItem: return0; [DEBUG IRGEN] visitStmt: return0; [DEBUG IRGEN] HandleReturnStmt: return0; -[DEBUG IRGEN] HandleReturnStmt eval exp: 0 [DEBUG IRGEN] EvalExpr: 0 [DEBUG IRGEN] visitAddExp: 0 [DEBUG IRGEN] visitMulExp: 0 [DEBUG IRGEN] visitPrimaryExp: 0 [DEBUG] visitPrimaryExp -[DEBUG] EvalExpr: success, result = 0x562c37dae750 +[DEBUG] EvalExpr: success, result = 0x560d55b3f750 +[DEBUG] visitFuncDef: 函数 main 生成完成 define i32 @getint() { entry: } @@ -23457,7 +24187,7 @@ SymbolTable::addSymbol: stored accumulator with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de052c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: length [DEBUG] visitPrimaryExp: length @@ -23470,7 +24200,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found accumulator in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = accumulator, sym->kind = 0 绑定变量: accumulator -> VarDefContext -CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x56429de026f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d86f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: accumulator+x[i]*y[i] [DEBUG] visitUnaryExp: accumulator @@ -23478,7 +24208,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found accumulator in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = accumulator, sym->kind = 0 绑定变量: accumulator -> VarDefContext -CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x56429de026f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d86f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: x[i] [DEBUG] visitPrimaryExp: x[i] @@ -23493,7 +24223,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de052c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: y[i] @@ -23509,14 +24239,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de052c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de052c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -23524,7 +24254,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de052c0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5db2c0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -23538,7 +24268,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found accumulator in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = accumulator, sym->kind = 0 绑定变量: accumulator -> VarDefContext -CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x56429de026f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: accumulator, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d86f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 loop has_return: 1 return_type_is_void: 0 @@ -23615,14 +24345,14 @@ SymbolTable::lookup: found starttime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de21000, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: COUNT [DEBUG] visitPrimaryExp: COUNT SymbolTable::lookup: found COUNT in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = COUNT, sym->kind = 0 绑定变量: COUNT -> VarDefContext -CheckLValue 绑定变量: COUNT, sym->kind: 0, sym->var_def_ctx: 0x56429ddffc30, sym->const_def_ctx: 0 +CheckLValue 绑定变量: COUNT, sym->kind: 0, sym->var_def_ctx: 0x555b8a5d5c30, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: If @@ -23631,7 +24361,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de21000, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 10 [DEBUG] visitPrimaryExp: 10 @@ -23640,7 +24370,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x56429de25f70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0.0 [DEBUG] visitUnaryExp: 0.0 @@ -23649,7 +24379,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x56429de26b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 1.0 [DEBUG] visitUnaryExp: 1.0 @@ -23659,7 +24389,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x56429de25f70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: a+0.1 [DEBUG] visitUnaryExp: a @@ -23667,7 +24397,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x56429de25f70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 0.1 [DEBUG] visitPrimaryExp: 0.1 @@ -23675,7 +24405,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x56429de26b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: b+0.2 [DEBUG] visitUnaryExp: b @@ -23683,7 +24413,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x56429de26b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 0.2 [DEBUG] visitPrimaryExp: 0.2 @@ -23693,21 +24423,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x56429de22070, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: len [DEBUG] visitPrimaryExp: len SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = len, sym->kind = 0 绑定变量: len -> VarDefContext -CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x56429de22940, sym->const_def_ctx: 0 +CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8940, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x56429de236e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f96e0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -23715,7 +24445,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x56429de22070, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: a+j @@ -23724,20 +24454,20 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found a in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x56429de25f70, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fbf70, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: j [DEBUG] visitPrimaryExp: j SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x56429de22070, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = y, sym->kind = 0 绑定变量: y -> VarDefContext -CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x56429de245f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fa5f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -23745,7 +24475,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x56429de22070, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: b+j @@ -23754,20 +24484,20 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found b in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = b, sym->kind = 0 绑定变量: b -> VarDefContext -CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x56429de26b90, sym->const_def_ctx: 0 +CheckLValue 绑定变量: b, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fcb90, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: j [DEBUG] visitPrimaryExp: j SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x56429de22070, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x56429de22070, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -23775,7 +24505,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x56429de22070, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8070, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -23783,7 +24513,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = total, sym->kind = 0 绑定变量: total -> VarDefContext -CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x56429de1a430, sym->const_def_ctx: 0 +CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: total+loop(x,y,len) [DEBUG] visitUnaryExp: total @@ -23791,7 +24521,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = total, sym->kind = 0 绑定变量: total -> VarDefContext -CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x56429de1a430, sym->const_def_ctx: 0 +CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: loop(x,y,len) [DEBUG] 函数调用: loop @@ -23804,7 +24534,7 @@ SymbolTable::lookup: found loop in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found x in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = x, sym->kind = 0 绑定变量: x -> VarDefContext -CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x56429de236e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: x, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f96e0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: y @@ -23813,7 +24543,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found y in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = y, sym->kind = 0 绑定变量: y -> VarDefContext -CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x56429de245f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: y, sym->kind: 0, sym->var_def_ctx: 0x555b8a5fa5f0, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: len @@ -23822,7 +24552,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = len, sym->kind = 0 绑定变量: len -> VarDefContext -CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x56429de22940, sym->const_def_ctx: 0 +CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f8940, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 4 形参类型 4 [DEBUG] 检查参数 1: 实参类型 4 形参类型 4 @@ -23831,7 +24561,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de21000, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -23839,7 +24569,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x56429de21000, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f7000, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -23858,7 +24588,7 @@ SymbolTable::lookup: found stoptime in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = total, sym->kind = 0 绑定变量: total -> VarDefContext -CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x56429de1a430, sym->const_def_ctx: 0 +CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 11442437121638400.000000 [DEBUG] visitPrimaryExp: 11442437121638400.000000 @@ -23872,7 +24602,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found total in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = total, sym->kind = 0 绑定变量: total -> VarDefContext -CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x56429de1a430, sym->const_def_ctx: 0 +CheckLValue 绑定变量: total, sym->kind: 0, sym->var_def_ctx: 0x555b8a5f0430, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 11442437121638400.000000 [DEBUG] visitPrimaryExp: 11442437121638400.000000 @@ -23931,7 +24661,7 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 否 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 COUNT -[DEBUG] HandleGlobalVariable: 处理全局标量变量 +[DEBUG] HandleGlobalVariable: 变量 COUNT 是 int 类型 [DEBUG] HandleGlobalVariable: 创建全局标量变量: COUNT [DEBUG] HandleGlobalVariable: 处理标量初始化值 [DEBUG] visitInitVal: 开始处理初始化值 @@ -23941,15 +24671,13 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG IRGEN] visitMulExp: 500000 [DEBUG IRGEN] visitPrimaryExp: 500000 [DEBUG] visitPrimaryExp -[DEBUG] visitPrimaryExp: constant int 500000 created as 0x56429de43190 -[DEBUG] EvalExpr: success, result = 0x56429de43190 -[DEBUG] HandleGlobalVariable: 获取到常量初始化值 -[DEBUG] HandleGlobalVariable: 设置全局变量初始化器 -[DEBUG] HandleGlobalVariable: 存储全局变量引用 -[DEBUG] HandleGlobalVariable: 创建全局变量 COUNT -[DEBUG] HandleGlobalVariable: 全局变量处理完成 +[DEBUG] visitPrimaryExp: constant int 500000 created as 0x555b8a619190 +[DEBUG] EvalExpr: success, result = 0x555b8a619190 [DEBUG] visitDecl: 声明处理完成 [DEBUG IRGEN] visitFuncDef: loop +[DEBUG] visitFuncDef: 创建函数 loop,返回类型: float,参数数量: 3 +[DEBUG] visitFuncDef: 函数对象地址: 0x555b8a622250 +[DEBUG] visitFuncDef: 为函数 loop 添加参数 x,类型: ptr_float [error] [ir] AllocaInst 当前只支持 i32* ========== test/test_case/performance/transpose0.sy ========== @@ -24030,21 +24758,21 @@ SymbolTable::addSymbol: stored j with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: colsize [DEBUG] visitPrimaryExp: colsize SymbolTable::lookup: found colsize in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = colsize, sym->kind = 0 绑定变量: colsize -> VarDefContext -CheckLValue 绑定变量: colsize, sym->kind: 0, sym->var_def_ctx: 0x55e49499b5e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: colsize, sym->kind: 0, sym->var_def_ctx: 0x56536068e5e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -24055,7 +24783,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: rowsize [DEBUG] visitPrimaryExp: rowsize @@ -24070,21 +24798,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: j [DEBUG] visitPrimaryExp: j SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -24092,7 +24820,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24112,7 +24840,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: rowsize [DEBUG] visitPrimaryExp: rowsize @@ -24125,7 +24853,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 SymbolTable::addSymbol: stored curr with kind=0, const_def_ctx=0 @@ -24142,21 +24870,21 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: colsize [DEBUG] visitPrimaryExp: colsize SymbolTable::lookup: found colsize in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = colsize, sym->kind = 0 绑定变量: colsize -> VarDefContext -CheckLValue 绑定变量: colsize, sym->kind: 0, sym->var_def_ctx: 0x55e49499b5e0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: colsize, sym->kind: 0, sym->var_def_ctx: 0x56536068e5e0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: i [DEBUG] visitPrimaryExp: i SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: matrix[i*rowsize+j] @@ -24173,7 +24901,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: rowsize [DEBUG] visitPrimaryExp: rowsize @@ -24186,7 +24914,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt @@ -24201,7 +24929,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: rowsize [DEBUG] visitPrimaryExp: rowsize @@ -24214,7 +24942,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: curr @@ -24223,13 +24951,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found curr in scope level 5, kind=0, const_def_ctx=0 CheckLValue: found sym->name = curr, sym->kind = 0 绑定变量: curr -> VarDefContext -CheckLValue 绑定变量: curr, sym->kind: 0, sym->var_def_ctx: 0x55e4949b95a0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: curr, sym->kind: 0, sym->var_def_ctx: 0x5653606ac5a0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -24237,7 +24965,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55e4949a3200, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x565360696200, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24245,7 +24973,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -24253,7 +24981,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949a37f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606967f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24289,7 +25017,7 @@ SymbolTable::lookup: found getarray in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55e49499d140, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x565360690140, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 3 形参类型 3 @@ -24313,21 +25041,21 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55e4949cb2f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5653606be2f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found matrix in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = matrix, sym->kind = 0 绑定变量: matrix -> VarDefContext -CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x55e494997d40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x56536068ad40, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -24335,7 +25063,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: i @@ -24344,13 +25072,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -24358,7 +25086,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24366,7 +25094,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -24377,14 +25105,14 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: len [DEBUG] visitPrimaryExp: len SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = len, sym->kind = 0 绑定变量: len -> VarDefContext -CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x55e4949cc250, sym->const_def_ctx: 0 +CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x5653606bf250, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: ExpStmt @@ -24400,7 +25128,7 @@ SymbolTable::lookup: found transpose in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55e4949cb2f0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5653606be2f0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: matrix [DEBUG] visitUnaryExp: matrix @@ -24408,7 +25136,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found matrix in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = matrix, sym->kind = 0 绑定变量: matrix -> VarDefContext -CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x55e494997d40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x56536068ad40, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: a[i] @@ -24417,7 +25145,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found a in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = a, sym->kind = 0 绑定变量: a -> VarDefContext -CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x55e49499d140, sym->const_def_ctx: 0 +CheckLValue 绑定变量: a, sym->kind: 0, sym->var_def_ctx: 0x565360690140, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -24425,7 +25153,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 @@ -24435,7 +25163,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -24443,7 +25171,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24457,7 +25185,7 @@ SymbolTable::addSymbol: stored ans with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -24468,21 +25196,21 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: len [DEBUG] visitPrimaryExp: len SymbolTable::lookup: found len in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = len, sym->kind = 0 绑定变量: len -> VarDefContext -CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x55e4949cc250, sym->const_def_ctx: 0 +CheckLValue 绑定变量: len, sym->kind: 0, sym->var_def_ctx: 0x5653606bf250, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55e4949d6c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: ans+i*i*matrix[i] [DEBUG] visitUnaryExp: ans @@ -24490,28 +25218,28 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55e4949d6c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: i [DEBUG] visitPrimaryExp: i SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: i [DEBUG] visitPrimaryExp: i SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: matrix[i] [DEBUG] visitPrimaryExp: matrix[i] SymbolTable::lookup: found matrix in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = matrix, sym->kind = 0 绑定变量: matrix -> VarDefContext -CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x55e494997d40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: matrix, sym->kind: 0, sym->var_def_ctx: 0x56536068ad40, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -24519,14 +25247,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -24534,7 +25262,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55e4949cd9d0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5653606c09d0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24544,7 +25272,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55e4949d6c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 0 [DEBUG] visitPrimaryExp: 0 @@ -24552,7 +25280,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55e4949d6c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: -ans [DEBUG] visitUnaryExp: -ans @@ -24561,7 +25289,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55e4949d6c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: ExpStmt [DEBUG] CheckExp: stoptime() @@ -24582,7 +25310,7 @@ SymbolTable::lookup: found putint in scope level 0, kind=1, const_def_ctx=0 SymbolTable::lookup: found ans in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = ans, sym->kind = 0 绑定变量: ans -> VarDefContext -CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x55e4949d6c40, sym->const_def_ctx: 0 +CheckLValue 绑定变量: ans, sym->kind: 0, sym->var_def_ctx: 0x5653606c9c40, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] visitStmt: ExpStmt @@ -24616,10 +25344,32 @@ SymbolTable::lookup: found main in scope level 1, kind=1, const_def_ctx=0 [DEBUG] visitVarDef: 是否为数组: 是 [DEBUG] visitVarDef: 处理全局变量 [DEBUG] HandleGlobalVariable: 开始处理全局变量 matrix -[DEBUG] HandleGlobalVariable: 处理全局数组变量 +[DEBUG] HandleGlobalVariable: 变量 matrix 是 int 类型 [DEBUG] TryEvaluateConstInt: 开始求值常量表达式 [DEBUG] HandleGlobalVariable: 数组总大小: 20000000 -[error] [irgen] 全局数组大小无效 +[DEBUG] HandleGlobalVariable: 创建全局数组: matrix +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG] visitDecl: 开始处理声明 +[DEBUG] visitDecl: 处理变量声明 +[DEBUG] visitVarDef: 开始处理变量定义 +[DEBUG] visitVarDef: 变量名称: a +[DEBUG] visitVarDef: 是否为数组: 是 +[DEBUG] visitVarDef: 处理全局变量 +[DEBUG] HandleGlobalVariable: 开始处理全局变量 a +[DEBUG] HandleGlobalVariable: 变量 a 是 int 类型 +[DEBUG] TryEvaluateConstInt: 开始求值常量表达式 +[DEBUG] HandleGlobalVariable: 数组总大小: 100000 +[DEBUG] HandleGlobalVariable: 创建全局数组: a +[DEBUG] HandleGlobalVariable: 设置全局数组初始化器 +[DEBUG] visitDecl: 声明处理完成 +[DEBUG IRGEN] visitFuncDef: transpose +[DEBUG] visitFuncDef: 创建函数 transpose,返回类型: int,参数数量: 3 +[DEBUG] visitFuncDef: 函数对象地址: 0x5653606dbd50 +[DEBUG] visitFuncDef: 为函数 transpose 添加参数 n,类型: int32 +[DEBUG] visitFuncDef: 参数 n 处理完成 +[DEBUG] visitFuncDef: 为函数 transpose 添加参数 matrix,类型: ptr_int32 +[error] [ir] 存储类型不匹配:期望 int32 ========== test/test_case/performance/vector_mul3.sy ========== SymbolTable::addSymbol: stored getint with kind=1, const_def_ctx=0 @@ -24729,7 +25479,7 @@ SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581198cde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -24742,7 +25492,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55581198ec10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce296c10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: sum+v[i]*u[i] [DEBUG] visitUnaryExp: sum @@ -24750,7 +25500,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55581198ec10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce296c10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: v[i] [DEBUG] visitPrimaryExp: v[i] @@ -24765,7 +25515,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581198cde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: u[i] @@ -24781,14 +25531,14 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581198cde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581198cde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -24796,7 +25546,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581198cde0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce294de0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24810,7 +25560,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55581198ec10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce296c10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 Vectordot has_return: 1 return_type_is_void: 0 @@ -24845,7 +25595,7 @@ SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199e500, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -24860,7 +25610,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55581199f420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -24873,7 +25623,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55581199fcd0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7cd0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: sum+v[j]/func(i,j) [DEBUG] visitUnaryExp: sum @@ -24881,7 +25631,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55581199fcd0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7cd0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: v[j] [DEBUG] visitPrimaryExp: v[j] @@ -24896,7 +25646,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55581199f420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: func(i,j) @@ -24910,7 +25660,7 @@ SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199e500, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j [DEBUG] visitUnaryExp: j @@ -24918,7 +25668,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55581199f420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 @@ -24926,7 +25676,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55581199f420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -24934,7 +25684,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55581199f420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7420, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -24950,7 +25700,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199e500, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: sum @@ -24959,13 +25709,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55581199fcd0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a7cd0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199e500, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -24973,7 +25723,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199e500, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a6500, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -25009,7 +25759,7 @@ SymbolTable::addSymbol: stored sum with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199ba10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -25024,7 +25774,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5558119aca50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n @@ -25037,7 +25787,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5558119ad3b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b53b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: sum+v[j]/func(j,i) [DEBUG] visitUnaryExp: sum @@ -25045,7 +25795,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5558119ad3b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b53b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: v[j] [DEBUG] visitPrimaryExp: v[j] @@ -25060,7 +25810,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5558119aca50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] visitUnaryExp: func(j,i) @@ -25074,7 +25824,7 @@ SymbolTable::lookup: found func in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5558119aca50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -25082,7 +25832,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199ba10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 1 形参类型 1 [DEBUG] 检查参数 1: 实参类型 1 形参类型 1 @@ -25090,7 +25840,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5558119aca50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: j+1 [DEBUG] visitUnaryExp: j @@ -25098,7 +25848,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found j in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = j, sym->kind = 0 绑定变量: j -> VarDefContext -CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x5558119aca50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: j, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4a50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -25114,7 +25864,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199ba10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: sum @@ -25123,13 +25873,13 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found sum in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = sum, sym->kind = 0 绑定变量: sum -> VarDefContext -CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x5558119ad3b0, sym->const_def_ctx: 0 +CheckLValue 绑定变量: sum, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b53b0, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199ba10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -25137,7 +25887,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55581199ba10, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2a3a10, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -25231,7 +25981,7 @@ SymbolTable::addSymbol: stored input with kind=2, const_def_ctx=0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: input [DEBUG] visitPrimaryExp: input @@ -25244,7 +25994,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1e-6 [DEBUG] visitPrimaryExp: 1e-6 @@ -25253,7 +26003,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: input [DEBUG] visitPrimaryExp: input @@ -25266,7 +26016,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: -1e-6 [DEBUG] visitUnaryExp: 1e-6 @@ -25276,7 +26026,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: (temp+input/temp)/2 [DEBUG] visitUnaryExp: (temp+input/temp) @@ -25287,7 +26037,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: input [DEBUG] visitPrimaryExp: input @@ -25300,7 +26050,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 2 [DEBUG] visitPrimaryExp: 2 @@ -25314,7 +26064,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found temp in scope level 1, kind=0, const_def_ctx=0 CheckLValue: found sym->name = temp, sym->kind = 0 绑定变量: temp -> VarDefContext -CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x5558119b8c50, sym->const_def_ctx: 0 +CheckLValue 绑定变量: temp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2c0c50, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 设置 current_func_has_return_ = true [DEBUG] 函数 my_sqrt has_return: 1 return_type_is_void: 0 @@ -25331,7 +26081,7 @@ SymbolTable::addSymbol: stored n with kind=0, const_def_ctx=0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5558119c2180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 0 [DEBUG] visitPrimaryExp: 0 @@ -25340,7 +26090,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5558119c2180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 2000 [DEBUG] visitUnaryExp: 2000 @@ -25393,21 +26143,21 @@ SymbolTable::addSymbol: stored i with kind=0, const_def_ctx=0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: n [DEBUG] visitPrimaryExp: n SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5558119c2180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitStmt: Block [DEBUG] visitStmt: Assign ExpStmt SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorA, sym->kind = 0 绑定变量: vectorA -> VarDefContext -CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x5558119ac190, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 1 [DEBUG] CheckExp: i [DEBUG] visitUnaryExp: i @@ -25415,7 +26165,7 @@ dim_count: 1, subscript_count: 1 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 完全索引,返回元素类型 [DEBUG] CheckExp: 1 @@ -25425,7 +26175,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -25433,7 +26183,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -25441,7 +26191,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: 0 [DEBUG] visitUnaryExp: 0 @@ -25452,7 +26202,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1000 [DEBUG] visitPrimaryExp: 1000 @@ -25470,7 +26220,7 @@ SymbolTable::lookup: found mult_combin in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorA, sym->kind = 0 绑定变量: vectorA -> VarDefContext -CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x5558119ac190, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: vectorB @@ -25479,7 +26229,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorB, sym->kind = 0 绑定变量: vectorB -> VarDefContext -CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x5558119ac420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: n @@ -25488,7 +26238,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5558119c2180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: Vectortmp [DEBUG] visitUnaryExp: Vectortmp @@ -25496,7 +26246,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found Vectortmp in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = Vectortmp, sym->kind = 0 绑定变量: Vectortmp -> VarDefContext -CheckLValue 绑定变量: Vectortmp, sym->kind: 0, sym->var_def_ctx: 0x5558119c9d30, sym->const_def_ctx: 0 +CheckLValue 绑定变量: Vectortmp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d1d30, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 4 形参类型 4 @@ -25516,7 +26266,7 @@ SymbolTable::lookup: found mult_combin in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorB, sym->kind = 0 绑定变量: vectorB -> VarDefContext -CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x5558119ac420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: vectorA @@ -25525,7 +26275,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorA, sym->kind = 0 绑定变量: vectorA -> VarDefContext -CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x5558119ac190, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: n @@ -25534,7 +26284,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5558119c2180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: Vectortmp [DEBUG] visitUnaryExp: Vectortmp @@ -25542,7 +26292,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found Vectortmp in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = Vectortmp, sym->kind = 0 绑定变量: Vectortmp -> VarDefContext -CheckLValue 绑定变量: Vectortmp, sym->kind: 0, sym->var_def_ctx: 0x5558119c9d30, sym->const_def_ctx: 0 +CheckLValue 绑定变量: Vectortmp, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d1d30, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] 检查参数 0: 实参类型 4 形参类型 4 @@ -25553,7 +26303,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] CheckExp: i+1 [DEBUG] visitUnaryExp: i @@ -25561,7 +26311,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found i in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = i, sym->kind = 0 绑定变量: i -> VarDefContext -CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x5558119ca670, sym->const_def_ctx: 0 +CheckLValue 绑定变量: i, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2d2670, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1 [DEBUG] visitPrimaryExp: 1 @@ -25590,7 +26340,7 @@ SymbolTable::lookup: found Vectordot in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found vectorA in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorA, sym->kind = 0 绑定变量: vectorA -> VarDefContext -CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x5558119ac190, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorA, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4190, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: vectorB @@ -25599,7 +26349,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorB, sym->kind = 0 绑定变量: vectorB -> VarDefContext -CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x5558119ac420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: n @@ -25608,7 +26358,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5558119c2180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 4 形参类型 4 [DEBUG] 检查参数 1: 实参类型 4 形参类型 4 @@ -25624,7 +26374,7 @@ SymbolTable::lookup: found Vectordot in scope level 1, kind=1, const_def_ctx=0 SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorB, sym->kind = 0 绑定变量: vectorB -> VarDefContext -CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x5558119ac420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: vectorB @@ -25633,7 +26383,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found vectorB in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = vectorB, sym->kind = 0 绑定变量: vectorB -> VarDefContext -CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x5558119ac420, sym->const_def_ctx: 0 +CheckLValue 绑定变量: vectorB, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2b4420, sym->const_def_ctx: 0 dim_count: 1, subscript_count: 0 数组名作为地址 [DEBUG] CheckExp: n @@ -25642,7 +26392,7 @@ dim_count: 1, subscript_count: 0 SymbolTable::lookup: found n in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = n, sym->kind = 0 绑定变量: n -> VarDefContext -CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x5558119c2180, sym->const_def_ctx: 0 +CheckLValue 绑定变量: n, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2ca180, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] 检查参数 0: 实参类型 4 形参类型 4 [DEBUG] 检查参数 1: 实参类型 4 形参类型 4 @@ -25656,7 +26406,7 @@ SymbolTable::addSymbol: stored result with kind=0, const_def_ctx=0 SymbolTable::lookup: found result in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = result, sym->kind = 0 绑定变量: result -> VarDefContext -CheckLValue 绑定变量: result, sym->kind: 0, sym->var_def_ctx: 0x5558119d2890, sym->const_def_ctx: 0 +CheckLValue 绑定变量: result, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2da890, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1.000000 [DEBUG] visitPrimaryExp: 1.000000 @@ -25667,7 +26417,7 @@ dim_count: 0, subscript_count: 0 SymbolTable::lookup: found result in scope level 3, kind=0, const_def_ctx=0 CheckLValue: found sym->name = result, sym->kind = 0 绑定变量: result -> VarDefContext -CheckLValue 绑定变量: result, sym->kind: 0, sym->var_def_ctx: 0x5558119d2890, sym->const_def_ctx: 0 +CheckLValue 绑定变量: result, sym->kind: 0, sym->var_def_ctx: 0x55d0ce2da890, sym->const_def_ctx: 0 dim_count: 0, subscript_count: 0 [DEBUG] visitUnaryExp: 1.000000 [DEBUG] visitPrimaryExp: 1.000000 diff --git a/src/ir/IRBuilder.cpp b/src/ir/IRBuilder.cpp index a91f081..18b7169 100644 --- a/src/ir/IRBuilder.cpp +++ b/src/ir/IRBuilder.cpp @@ -5,7 +5,7 @@ #include "ir/IR.h" #include - +#include #include "utils/Log.h" namespace ir { @@ -59,6 +59,11 @@ BinaryInst* IRBuilder::CreateBinary(Opcode op, Value* lhs, Value* rhs, case Opcode::Mod: case Opcode::And: case Opcode::Or: + // 添加浮点操作码 + case Opcode::FAdd: + case Opcode::FSub: + case Opcode::FMul: + case Opcode::FDiv: // 有效的二元操作符 break; case Opcode::Not: @@ -77,21 +82,33 @@ BinaryInst* IRBuilder::CreateBinary(Opcode op, Value* lhs, Value* rhs, FormatError("ir", "CreateBinary 操作数类型不匹配")); } + // 检查是否为浮点操作 + bool is_float_op = (op == Opcode::FAdd || op == Opcode::FSub || + op == Opcode::FMul || op == Opcode::FDiv); - bool is_logical = (op == Opcode::And || op == Opcode::Or); - - if (is_logical) { - // 逻辑运算的结果是 int32(布尔值) - result_type = Type::GetInt32Type(); - } else { - // 算术运算的结果类型与操作数相同 + if (is_float_op) { + // 浮点操作要求操作数是浮点类型 + if (!lhs->GetType()->IsFloat()) { + throw std::runtime_error( + FormatError("ir", "浮点运算要求操作数为浮点类型")); + } result_type = lhs->GetType(); - } - - // 检查操作数类型是否支持 - if (!lhs->GetType()->IsInt32() && !lhs->GetType()->IsFloat()) { - throw std::runtime_error( - FormatError("ir", "CreateBinary 只支持 int32 和 float 类型")); + } else { + bool is_logical = (op == Opcode::And || op == Opcode::Or); + + if (is_logical) { + // 逻辑运算的结果是 int32(布尔值) + result_type = Type::GetInt32Type(); + } else { + // 算术运算的结果类型与操作数相同 + result_type = lhs->GetType(); + } + + // 检查操作数类型是否支持 + if (!lhs->GetType()->IsInt32() && !lhs->GetType()->IsFloat()) { + throw std::runtime_error( + FormatError("ir", "CreateBinary 只支持 int32 和 float 类型")); + } } return insert_block_->Append(op, result_type, lhs, rhs, name); @@ -126,16 +143,30 @@ LoadInst* IRBuilder::CreateLoad(Value* ptr, const std::string& name) { } auto ptr_ty = ptr->GetType(); std::shared_ptr elem_ty; + if (ptr_ty->IsPtrInt32()) { elem_ty = Type::GetInt32Type(); } else if (ptr_ty->IsPtrFloat()) { elem_ty = Type::GetFloatType(); + } else if (ptr_ty->IsPtrInt1()) { + elem_ty = Type::GetInt1Type(); + } else if (ptr_ty->IsArray()) { + // 数组类型的指针,元素类型是数组元素类型 + auto* array_ty = dynamic_cast(ptr_ty.get()); + if (array_ty) { + elem_ty = array_ty->GetElementType(); + } else { + throw std::runtime_error(FormatError("ir", "不支持的指针类型")); + } } else { + // 尝试其他指针类型 throw std::runtime_error(FormatError("ir", "不支持的指针类型")); } + return insert_block_->Append(elem_ty, ptr, name); } + StoreInst* IRBuilder::CreateStore(Value* val, Value* ptr) { if (!insert_block_) { throw std::runtime_error(FormatError("ir", "IRBuilder 未设置插入点")); @@ -148,6 +179,32 @@ StoreInst* IRBuilder::CreateStore(Value* val, Value* ptr) { throw std::runtime_error( FormatError("ir", "IRBuilder::CreateStore 缺少 ptr")); } + + // 检查类型兼容性 + auto ptr_ty = ptr->GetType(); + auto val_ty = val->GetType(); + + if (ptr_ty->IsPtrInt32()) { + if (!val_ty->IsInt32()) { + throw std::runtime_error(FormatError("ir", "存储类型不匹配:期望 int32")); + } + } else if (ptr_ty->IsPtrFloat()) { + if (!val_ty->IsFloat()) { + throw std::runtime_error(FormatError("ir", "存储类型不匹配:期望 float")); + } + } else if (ptr_ty->IsArray()) { + // 数组存储:检查元素类型 + auto* array_ty = dynamic_cast(ptr_ty.get()); + if (array_ty) { + auto elem_ty = array_ty->GetElementType(); + if (elem_ty->IsInt32() && !val_ty->IsInt32()) { + throw std::runtime_error(FormatError("ir", "数组元素类型不匹配:期望 int32")); + } else if (elem_ty->IsFloat() && !val_ty->IsFloat()) { + throw std::runtime_error(FormatError("ir", "数组元素类型不匹配:期望 float")); + } + } + } + return insert_block_->Append(Type::GetVoidType(), val, ptr); } @@ -500,4 +557,64 @@ CallInst* IRBuilder::CreateCall(Function* callee, auto ret_ty = func_ty->GetReturnType(); return insert_block_->Append(ret_ty, callee, args, name); } + + +BinaryInst* IRBuilder::CreateFAdd(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append(Opcode::FAdd, lhs->GetType(), lhs, rhs, name); +} + +BinaryInst* IRBuilder::CreateFSub(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append(Opcode::FSub, lhs->GetType(), lhs, rhs, name); +} + +BinaryInst* IRBuilder::CreateFMul(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append(Opcode::FMul, lhs->GetType(), lhs, rhs, name); +} + +BinaryInst* IRBuilder::CreateFDiv(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append(Opcode::FDiv, lhs->GetType(), lhs, rhs, name); +} + +// 浮点比较 +FcmpInst* IRBuilder::CreateFCmpOEQ(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append( + FcmpInst::Predicate::OEQ, lhs, rhs, Type::GetInt1Type(), name); +} + +FcmpInst* IRBuilder::CreateFCmpONE(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append( + FcmpInst::Predicate::ONE, lhs, rhs, Type::GetInt1Type(), name); +} + +FcmpInst* IRBuilder::CreateFCmpOLT(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append( + FcmpInst::Predicate::OLT, lhs, rhs, Type::GetInt1Type(), name); +} + +FcmpInst* IRBuilder::CreateFCmpOLE(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append( + FcmpInst::Predicate::OLE, lhs, rhs, Type::GetInt1Type(), name); +} + +FcmpInst* IRBuilder::CreateFCmpOGT(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append( + FcmpInst::Predicate::OGT, lhs, rhs, Type::GetInt1Type(), name); +} + +FcmpInst* IRBuilder::CreateFCmpOGE(Value* lhs, Value* rhs, const std::string& name) { + return insert_block_->Append( + FcmpInst::Predicate::OGE, lhs, rhs, Type::GetInt1Type(), name); +} + +// 类型转换 +SIToFPInst* IRBuilder::CreateSIToFP(Value* value, std::shared_ptr target_ty, + const std::string& name) { + return insert_block_->Append(value, target_ty, name); +} + +FPToSIInst* IRBuilder::CreateFPToSI(Value* value, std::shared_ptr target_ty, + const std::string& name) { + return insert_block_->Append(value, target_ty, name); +} + } // namespace ir diff --git a/src/ir/IRPrinter.cpp b/src/ir/IRPrinter.cpp index 053274a..c4b0624 100644 --- a/src/ir/IRPrinter.cpp +++ b/src/ir/IRPrinter.cpp @@ -69,6 +69,15 @@ static const char* OpcodeToString(Opcode op) { return "not"; case Opcode::GEP: return "getelementptr"; + case Opcode::FAdd: return "fadd"; + case Opcode::FSub: return "fsub"; + case Opcode::FMul: return "fmul"; + case Opcode::FDiv: return "fdiv"; + case Opcode::FCmp: return "fcmp"; + case Opcode::SIToFP: return "sitofp"; + case Opcode::FPToSI: return "fptosi"; + case Opcode::FPExt: return "fpext"; + case Opcode::FPTrunc: return "fptrunc"; } return "?"; } diff --git a/src/irgen/IRGenDecl.cpp b/src/irgen/IRGenDecl.cpp index bc8e2d8..bc324f1 100644 --- a/src/irgen/IRGenDecl.cpp +++ b/src/irgen/IRGenDecl.cpp @@ -105,16 +105,22 @@ std::any IRGenImpl::visitConstDef(SysYParser::ConstDefContext* ctx) { } std::string const_name = ctx->Ident()->getText(); - std::cerr << "[DEBUG] visitConstDef: processing constant " << const_name << std::endl; // 检查是否为数组 bool is_array = !ctx->constExp().empty(); + // 获取常量类型(int 或 float) + bool is_float = false; + auto* constDecl = dynamic_cast(ctx->parent); + if (constDecl && constDecl->bType()) { + if (constDecl->bType()->Float()) { + is_float = true; + std::cerr << "[DEBUG] visitConstDef: 常量 " << const_name << " 是 float 类型" << std::endl; + } + } + if (is_array) { - // 数组常量处理 - 创建全局常量数组 - std::cerr << "[DEBUG] visitConstDef: array constant " << const_name << std::endl; - - // 获取数组维度 + // 数组常量处理 std::vector dimensions; for (auto* const_exp : ctx->constExp()) { int dim_size = TryEvaluateConstInt(const_exp); @@ -123,7 +129,14 @@ std::any IRGenImpl::visitConstDef(SysYParser::ConstDefContext* ctx) { } // 创建数组类型 - auto array_type = ir::Type::GetArrayType(ir::Type::GetInt32Type(), dimensions); + std::shared_ptr element_type; + if (is_float) { + element_type = ir::Type::GetFloatType(); + } else { + element_type = ir::Type::GetInt32Type(); + } + + auto array_type = ir::Type::GetArrayType(element_type, dimensions); ir::GlobalValue* global_array = module_.CreateGlobal(const_name, array_type); // 处理初始化值 @@ -134,17 +147,43 @@ std::any IRGenImpl::visitConstDef(SysYParser::ConstDefContext* ctx) { try { auto init_vec = std::any_cast>(result); for (auto* val : init_vec) { - if (auto* const_int = dynamic_cast(val)) { - init_consts.push_back(const_int); + if (is_float) { + if (auto* const_float = dynamic_cast(val)) { + init_consts.push_back(const_float); + } else if (auto* const_int = dynamic_cast(val)) { + // 整数转浮点 + float float_val = static_cast(const_int->GetValue()); + init_consts.push_back(builder_.CreateConstFloat(float_val)); + } else { + init_consts.push_back(builder_.CreateConstFloat(0.0f)); + } } else { - init_consts.push_back(builder_.CreateConstInt(0)); + if (auto* const_int = dynamic_cast(val)) { + init_consts.push_back(const_int); + } else if (auto* const_float = dynamic_cast(val)) { + // 浮点转整数 + int int_val = static_cast(const_float->GetValue()); + init_consts.push_back(builder_.CreateConstInt(int_val)); + } else { + init_consts.push_back(builder_.CreateConstInt(0)); + } } } } catch (const std::bad_any_cast&) { try { ir::Value* single_val = std::any_cast(result); - if (auto* const_int = dynamic_cast(single_val)) { - init_consts.push_back(const_int); + if (is_float) { + if (auto* const_float = dynamic_cast(single_val)) { + init_consts.push_back(const_float); + } else { + init_consts.push_back(builder_.CreateConstFloat(0.0f)); + } + } else { + if (auto* const_int = dynamic_cast(single_val)) { + init_consts.push_back(const_int); + } else { + init_consts.push_back(builder_.CreateConstInt(0)); + } } } catch (...) {} } @@ -155,50 +194,47 @@ std::any IRGenImpl::visitConstDef(SysYParser::ConstDefContext* ctx) { int total_size = 1; for (int dim : dimensions) total_size *= dim; while (init_consts.size() < static_cast(total_size)) { - init_consts.push_back(builder_.CreateConstInt(0)); + if (is_float) { + init_consts.push_back(builder_.CreateConstFloat(0.0f)); + } else { + init_consts.push_back(builder_.CreateConstInt(0)); + } } global_array->SetInitializer(init_consts); global_array->SetConstant(true); - // 存储到常量映射(而不是storage_map_) const_storage_map_[ctx] = global_array; const_global_map_[const_name] = global_array; } else { - // 标量常量处理 - 直接求值并存储常量值 - std::cerr << "[DEBUG] visitConstDef: scalar constant " << const_name << std::endl; - + // 标量常量处理 if (!ctx->constInitVal()) { throw std::runtime_error(FormatError("irgen", "常量缺少初始值")); } - // 求值常量表达式 - // 求值常量表达式 - auto* const_init_val = ctx->constInitVal(); - - // 关键修改:直接求值常量表达式,不使用 builder_ ir::ConstantValue* const_value = nullptr; + auto* const_init_val = ctx->constInitVal(); if (const_init_val->constExp()) { - // 直接访问常量表达式的值,不通过 IR 生成 - int value = TryEvaluateConstInt(const_init_val->constExp()); - // 使用 Context 直接创建常量,不依赖 builder_ - const_value = module_.GetContext().GetConstInt(value); - std::cerr << "[DEBUG] visitConstDef: constant " << const_name - << " = " << value << std::endl; + // 对于常量表达式,我们可以尝试直接求值 + if (is_float) { + // TODO: 实现浮点常量表达式的求值 + const_value = module_.GetContext().GetConstFloat(0.0f); + } else { + int value = TryEvaluateConstInt(const_init_val->constExp()); + const_value = module_.GetContext().GetConstInt(value); + } } else { - const_value = module_.GetContext().GetConstInt(0); + if (is_float) { + const_value = module_.GetContext().GetConstFloat(0.0f); + } else { + const_value = module_.GetContext().GetConstInt(0); + } } // 存储常量值到映射 const_value_map_[const_name] = const_value; - - // 同时也保存一个虚拟指针用于统一接口(可选) - // auto* dummy_slot = builder_.CreateAllocaI32(module_.GetContext().NextTemp() + "_" + const_name); - // builder_.CreateStore(const_value, dummy_slot); - // const_storage_map_[ctx] = dummy_slot; - std::cerr << "[DEBUG] visitConstDef: scalar constant stored, no alloca created" << std::endl; } return {}; @@ -242,8 +278,20 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, const std::string& varName, bool is_array) { std::cerr << "[DEBUG] HandleGlobalVariable: 开始处理全局变量 " << varName << std::endl; + + // 获取变量类型(int 或 float) + bool is_float = false; + auto* varDecl = dynamic_cast(ctx->parent); + if (varDecl && varDecl->bType()) { + if (varDecl->bType()->Float()) { + is_float = true; + std::cerr << "[DEBUG] HandleGlobalVariable: 变量 " << varName << " 是 float 类型" << std::endl; + } else if (varDecl->bType()->Int()) { + std::cerr << "[DEBUG] HandleGlobalVariable: 变量 " << varName << " 是 int 类型" << std::endl; + } + } + if (is_array) { - std::cerr << "[DEBUG] HandleGlobalVariable: 处理全局数组变量" << std::endl; // 全局数组变量 int total_size = 1; std::vector dimensions; @@ -261,12 +309,15 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, std::cerr << "[DEBUG] HandleGlobalVariable: 数组总大小: " << total_size << std::endl; - if (total_size <= 0 || total_size > 10000) { - throw std::runtime_error(FormatError("irgen", "全局数组大小无效")); + // 创建数组类型 + std::shared_ptr element_type; + if (is_float) { + element_type = ir::Type::GetFloatType(); + } else { + element_type = ir::Type::GetInt32Type(); } - // 创建数组类型的全局变量 - auto array_type = ir::Type::GetArrayType(ir::Type::GetInt32Type(), dimensions); + auto array_type = ir::Type::GetArrayType(element_type, dimensions); ir::GlobalValue* global_array = module_.CreateGlobal(varName, array_type); std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局数组: " << varName << std::endl; @@ -277,26 +328,36 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, auto result = initVal->accept(this); if (result.has_value()) { try { - // 尝试获取初始化值列表 auto init_vec = std::any_cast>(result); std::cerr << "[DEBUG] HandleGlobalVariable: 获取到初始化值列表, 大小: " << init_vec.size() << std::endl; for (auto* val : init_vec) { if (auto* const_int = dynamic_cast(val)) { init_consts.push_back(const_int); + } else if (auto* const_float = dynamic_cast(val)) { + init_consts.push_back(const_float); } else { // 非常量表达式,使用0 - init_consts.push_back(builder_.CreateConstInt(0)); + if (is_float) { + init_consts.push_back(builder_.CreateConstFloat(0.0f)); + } else { + init_consts.push_back(builder_.CreateConstInt(0)); + } } } } catch (const std::bad_any_cast&) { try { - // 可能是单个值 ir::Value* single_val = std::any_cast(result); std::cerr << "[DEBUG] HandleGlobalVariable: 获取到单个初始化值" << std::endl; if (auto* const_int = dynamic_cast(single_val)) { init_consts.push_back(const_int); + } else if (auto* const_float = dynamic_cast(single_val)) { + init_consts.push_back(const_float); } else { - init_consts.push_back(builder_.CreateConstInt(0)); + if (is_float) { + init_consts.push_back(builder_.CreateConstFloat(0.0f)); + } else { + init_consts.push_back(builder_.CreateConstInt(0)); + } } } catch (const std::bad_any_cast&) { std::cerr << "[WARNING] HandleGlobalVariable: 无法解析数组初始化值" << std::endl; @@ -307,7 +368,11 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, // 如果初始化值不足,补0 while (init_consts.size() < static_cast(total_size)) { - init_consts.push_back(builder_.CreateConstInt(0)); + if (is_float) { + init_consts.push_back(builder_.CreateConstFloat(0.0f)); + } else { + init_consts.push_back(builder_.CreateConstInt(0)); + } } // 设置全局数组的初始化器 @@ -316,29 +381,20 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, std::cerr << "[DEBUG] HandleGlobalVariable: 设置全局数组初始化器" << std::endl; } - // 判断是否为常量(检查父节点是否为 ConstDef) - if (ctx->parent && dynamic_cast(ctx->parent)) { - global_array->SetConstant(true); - std::cerr << "[DEBUG] HandleGlobalVariable: 设置为常量数组" << std::endl; - } - // 存储全局变量引用 storage_map_[ctx] = global_array; - global_map_[varName] = global_array;//按名称映射 - std::cerr << "[DEBUG] HandleGlobalVariable: 存储全局数组引用" << std::endl; - - // 保存数组信息 - ArrayInfo info; - info.elements.clear(); // 全局数组不预先分配元素槽位 - info.dimensions = dimensions; - array_info_map_[ctx] = info; + global_map_[varName] = global_array; - std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局数组 " << varName - << ",总大小 " << total_size << std::endl; } else { - std::cerr << "[DEBUG] HandleGlobalVariable: 处理全局标量变量" << std::endl; // 全局标量变量 - ir::GlobalValue* global_var = module_.CreateGlobal(varName, ir::Type::GetInt32Type()); + std::shared_ptr var_type; + if (is_float) { + var_type = ir::Type::GetFloatType(); + } else { + var_type = ir::Type::GetInt32Type(); + } + + ir::GlobalValue* global_var = module_.CreateGlobal(varName, var_type); std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局标量变量: " << varName << std::endl; // 处理初始化值 @@ -349,111 +405,129 @@ std::any IRGenImpl::HandleGlobalVariable(SysYParser::VarDefContext* ctx, if (result.has_value()) { try { ir::Value* val = std::any_cast(result); - if (auto* const_int = dynamic_cast(val)) { - init_value = const_int; - std::cerr << "[DEBUG] HandleGlobalVariable: 获取到常量初始化值" << std::endl; + if (is_float) { + if (auto* const_float = dynamic_cast(val)) { + init_value = const_float; + } else if (auto* const_int = dynamic_cast(val)) { + // 整数转浮点 + float float_val = static_cast(const_int->GetValue()); + init_value = builder_.CreateConstFloat(float_val); + } else { + init_value = builder_.CreateConstFloat(0.0f); + } } else { - // 默认初始化为0 - init_value = builder_.CreateConstInt(0); - std::cerr << "[DEBUG] HandleGlobalVariable: 使用默认初始化值0" << std::endl; + if (auto* const_int = dynamic_cast(val)) { + init_value = const_int; + } else if (auto* const_float = dynamic_cast(val)) { + // 浮点转整数 + int int_val = static_cast(const_float->GetValue()); + init_value = builder_.CreateConstInt(int_val); + } else { + init_value = builder_.CreateConstInt(0); + } } } catch (const std::bad_any_cast&) { - init_value = builder_.CreateConstInt(0); - std::cerr << "[DEBUG] HandleGlobalVariable: 类型转换失败,使用默认初始化值0" << std::endl; + if (is_float) { + init_value = builder_.CreateConstFloat(0.0f); + } else { + init_value = builder_.CreateConstInt(0); + } } - } else { - std::cerr << "[DEBUG] HandleGlobalVariable: 无初始化值结果" << std::endl; } - } else { - std::cerr << "[DEBUG] HandleGlobalVariable: 无初始化值" << std::endl; } - // 如果没有初始化值,默认初始化为0 + // 如果没有初始化值,默认初始化 if (!init_value) { - init_value = builder_.CreateConstInt(0); - std::cerr << "[DEBUG] HandleGlobalVariable: 使用默认初始化值0" << std::endl; + if (is_float) { + init_value = builder_.CreateConstFloat(0.0f); + } else { + init_value = builder_.CreateConstInt(0); + } } // 设置全局变量的初始化器 global_var->SetInitializer(init_value); - std::cerr << "[DEBUG] HandleGlobalVariable: 设置全局变量初始化器" << std::endl; - - // 判断是否为常量 - if (ctx->parent && dynamic_cast(ctx->parent)) { - global_var->SetConstant(true); - std::cerr << "[DEBUG] HandleGlobalVariable: 设置为常量" << std::endl; - } // 存储全局变量引用 storage_map_[ctx] = global_var; global_map_[varName] = global_var; - std::cerr << "[DEBUG] HandleGlobalVariable: 存储全局变量引用" << std::endl; - - std::cerr << "[DEBUG] HandleGlobalVariable: 创建全局变量 " << varName << std::endl; } - std::cerr << "[DEBUG] HandleGlobalVariable: 全局变量处理完成" << std::endl; return {}; } +// 修改 HandleLocalVariable 函数中的数组处理部分 + std::any IRGenImpl::HandleLocalVariable(SysYParser::VarDefContext* ctx, const std::string& varName, bool is_array) { std::cerr << "[DEBUG] HandleLocalVariable: 开始处理局部变量 " << varName << std::endl; + + // 获取变量类型 + bool is_float = false; + auto* varDecl = dynamic_cast(ctx->parent); + if (varDecl && varDecl->bType()) { + if (varDecl->bType()->Float()) { + is_float = true; + std::cerr << "[DEBUG] HandleLocalVariable: 变量 " << varName << " 是 float 类型" << std::endl; + } + } + if (is_array) { - std::cerr << "[DEBUG] HandleLocalVariable: 处理局部数组变量" << std::endl; // 局部数组变量 int total_size = 1; std::vector dimensions; - + // 获取数组维度 for (auto* const_exp : ctx->constExp()) { try { int dim_size = TryEvaluateConstInt(const_exp); - if (dim_size <= 0) { - dim_size = 1; - std::cerr << "[WARNING] HandleLocalVariable: 无法确定数组维度大小,使用1" << std::endl; - } + if (dim_size <= 0) dim_size = 1; dimensions.push_back(dim_size); total_size *= dim_size; } catch (const std::exception& e) { - std::cerr << "[WARNING] HandleLocalVariable: 无法获取数组维度: " << e.what() - << ",使用维度1" << std::endl; + std::cerr << "[WARNING] HandleLocalVariable: 无法获取数组维度,使用维度1" << std::endl; dimensions.push_back(1); total_size *= 1; } } - - std::cerr << "[DEBUG] HandleLocalVariable: 数组总大小: " << total_size << std::endl; - - if (total_size <= 0) { - throw std::runtime_error(FormatError("irgen", "数组大小必须为正数")); - } - - if (total_size > 10000) { - throw std::runtime_error(FormatError("irgen", "数组大小太大")); + + // 创建数组类型 + std::shared_ptr elem_type; + if (is_float) { + elem_type = ir::Type::GetFloatType(); + } else { + elem_type = ir::Type::GetInt32Type(); } - // 分配数组存储 - 为每个元素创建独立的 alloca + // 修正:使用完整的维度列表创建数组类型 + auto array_type = ir::Type::GetArrayType(elem_type, dimensions); + + // 分配数组内存 - 为每个元素创建独立的 alloca std::vector element_slots; - std::cerr << "[DEBUG] HandleLocalVariable: 为数组元素分配存储空间" << std::endl; for (int i = 0; i < total_size; i++) { - auto* slot = builder_.CreateAllocaI32( - module_.GetContext().NextTemp() + "_" + varName + "_" + std::to_string(i)); + ir::AllocaInst* slot; + if (is_float) { + slot = builder_.CreateAllocaFloat( + module_.GetContext().NextTemp() + "_" + varName + "_" + std::to_string(i)); + } else { + slot = builder_.CreateAllocaI32( + module_.GetContext().NextTemp() + "_" + varName + "_" + std::to_string(i)); + } element_slots.push_back(slot); } - + + // 存储第一个元素的地址作为数组的基地址 + storage_map_[ctx] = element_slots[0]; + local_var_map_[varName] = element_slots[0]; + // 处理初始化 if (auto* initVal = ctx->initVal()) { - std::cerr << "[DEBUG] HandleLocalVariable: 处理数组初始化值" << std::endl; auto result = initVal->accept(this); - if (result.has_value()) { try { - // 尝试获取初始化值列表 std::vector init_values = std::any_cast>(result); - std::cerr << "[DEBUG] HandleLocalVariable: 获取到初始化值列表, 大小: " << init_values.size() << std::endl; // 初始化数组元素 for (size_t i = 0; i < init_values.size() && i < static_cast(total_size); i++) { @@ -462,114 +536,119 @@ std::any IRGenImpl::HandleLocalVariable(SysYParser::VarDefContext* ctx, // 剩余元素初始化为0 for (size_t i = init_values.size(); i < static_cast(total_size); i++) { - builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + if (is_float) { + builder_.CreateStore(builder_.CreateConstFloat(0.0f), element_slots[i]); + } else { + builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + } } } catch (const std::bad_any_cast&) { - // 可能返回的是单个值 try { ir::Value* single_value = std::any_cast(result); - std::cerr << "[DEBUG] HandleLocalVariable: 获取到单个初始化值" << std::endl; // 只初始化第一个元素 builder_.CreateStore(single_value, element_slots[0]); // 其他元素初始化为0 for (int i = 1; i < total_size; i++) { - builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + if (is_float) { + builder_.CreateStore(builder_.CreateConstFloat(0.0f), element_slots[i]); + } else { + builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + } } } catch (const std::bad_any_cast&) { - std::cerr << "[ERROR] HandleLocalVariable: 无法解析数组初始化值类型" << std::endl; // 全部初始化为0 for (int i = 0; i < total_size; i++) { - builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + if (is_float) { + builder_.CreateStore(builder_.CreateConstFloat(0.0f), element_slots[i]); + } else { + builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + } } } } } else { - std::cerr << "[DEBUG] HandleLocalVariable: 无初始化值结果" << std::endl; // 没有初始化值,全部初始化为0 for (int i = 0; i < total_size; i++) { - builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + if (is_float) { + builder_.CreateStore(builder_.CreateConstFloat(0.0f), element_slots[i]); + } else { + builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + } } } } else { - std::cerr << "[DEBUG] HandleLocalVariable: 无初始化,全部初始化为0" << std::endl; // 无初始化,所有元素初始化为0 for (int i = 0; i < total_size; i++) { - builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + if (is_float) { + builder_.CreateStore(builder_.CreateConstFloat(0.0f), element_slots[i]); + } else { + builder_.CreateStore(builder_.CreateConstInt(0), element_slots[i]); + } } } - - // 存储第一个元素的地址作为数组的基地址 - storage_map_[ctx] = element_slots[0]; - local_var_map_[varName] = element_slots[0]; // 添加到局部变量映射,按名称映射 - std::cerr << "[DEBUG] HandleLocalVariable: 存储数组引用" << std::endl; - - // 保存数组信息 - ArrayInfo info; - info.elements = element_slots; - info.dimensions = dimensions; - array_info_map_[ctx] = info; - - std::cerr << "[DEBUG] HandleLocalVariable: 创建局部数组 " << varName - << ",维度 "; - for (size_t i = 0; i < dimensions.size(); i++) { - std::cerr << dimensions[i]; - if (i < dimensions.size() - 1) std::cerr << "×"; - } - std::cerr << ",总大小 " << total_size << std::endl; - } else { - std::cerr << "[DEBUG] HandleLocalVariable: 处理局部标量变量" << std::endl; // 局部标量变量 - auto* slot = builder_.CreateAllocaI32(module_.GetContext().NextTemp() + "_" + varName); + ir::AllocaInst* slot; + if (is_float) { + slot = builder_.CreateAllocaFloat(module_.GetContext().NextTemp() + "_" + varName); + } else { + slot = builder_.CreateAllocaI32(module_.GetContext().NextTemp() + "_" + varName); + } + storage_map_[ctx] = slot; - local_var_map_[varName] = slot; // 添加到局部变量映射 - std::cerr << "[DEBUG] HandleLocalVariable: 创建局部标量变量存储槽" << std::endl; + local_var_map_[varName] = slot; // 处理初始化 ir::Value* init = nullptr; if (auto* initVal = ctx->initVal()) { - std::cerr << "[DEBUG] HandleLocalVariable: 处理标量初始化值" << std::endl; auto result = initVal->accept(this); if (result.has_value()) { try { init = std::any_cast(result); - std::cerr << "[DEBUG] HandleLocalVariable: 获取到初始化值" << std::endl; } catch (const std::bad_any_cast&) { - // 可能是聚合初始化返回的 vector,但标量只取第一个值 try { std::vector init_values = std::any_cast>(result); if (!init_values.empty()) { init = init_values[0]; - std::cerr << "[DEBUG] HandleLocalVariable: 从列表获取第一个初始化值" << std::endl; } else { - init = builder_.CreateConstInt(0); - std::cerr << "[DEBUG] HandleLocalVariable: 初始化列表为空,使用0" << std::endl; + if (is_float) { + init = builder_.CreateConstFloat(0.0f); + } else { + init = builder_.CreateConstInt(0); + } } } catch (const std::bad_any_cast&) { - init = builder_.CreateConstInt(0); - std::cerr << "[DEBUG] HandleLocalVariable: 无法解析初始化值类型,使用0" << std::endl; + if (is_float) { + init = builder_.CreateConstFloat(0.0f); + } else { + init = builder_.CreateConstInt(0); + } } } } else { - init = builder_.CreateConstInt(0); - std::cerr << "[DEBUG] HandleLocalVariable: 无初始化值结果,使用0" << std::endl; + if (is_float) { + init = builder_.CreateConstFloat(0.0f); + } else { + init = builder_.CreateConstInt(0); + } } } else { - init = builder_.CreateConstInt(0); - std::cerr << "[DEBUG] HandleLocalVariable: 无初始化值,使用0" << std::endl; + if (is_float) { + init = builder_.CreateConstFloat(0.0f); + } else { + init = builder_.CreateConstInt(0); + } } builder_.CreateStore(init, slot); - std::cerr << "[DEBUG] HandleLocalVariable: 创建局部变量 " << varName - << ",初始值 " << (void*)init << std::endl; } - std::cerr << "[DEBUG] HandleLocalVariable: 局部变量处理完成" << std::endl; return {}; } + std::any IRGenImpl::visitInitVal(SysYParser::InitValContext* ctx) { std::cerr << "[DEBUG] visitInitVal: 开始处理初始化值" << std::endl; if (!ctx) { diff --git a/src/irgen/IRGenExp.cpp b/src/irgen/IRGenExp.cpp index 4cbdf25..9e33971 100644 --- a/src/irgen/IRGenExp.cpp +++ b/src/irgen/IRGenExp.cpp @@ -79,6 +79,41 @@ std::any IRGenImpl::visitPrimaryExp(SysYParser::PrimaryExpContext* ctx) { return static_cast(const_int); } + if (ctx->HEX_FLOAT()) { + std::string hex_float_str = ctx->HEX_FLOAT()->getText(); + float value = 0.0f; + // 解析十六进制浮点数 + try { + // C++11 的 std::stof 支持十六进制浮点数表示 + value = std::stof(hex_float_str); + } catch (const std::exception& e) { + std::cerr << "[WARNING] 无法解析十六进制浮点数: " << hex_float_str + << ",使用0.0代替" << std::endl; + value = 0.0f; + } + ir::Value* const_float = builder_.CreateConstFloat(value); + std::cerr << "[DEBUG] visitPrimaryExp: constant hex float " << value + << " created as " << (void*)const_float << std::endl; + return static_cast(const_float); + } + + // 处理十进制浮点常量 + if (ctx->DEC_FLOAT()) { + std::string dec_float_str = ctx->DEC_FLOAT()->getText(); + float value = 0.0f; + try { + value = std::stof(dec_float_str); + } catch (const std::exception& e) { + std::cerr << "[WARNING] 无法解析十进制浮点数: " << dec_float_str + << ",使用0.0代替" << std::endl; + value = 0.0f; + } + ir::Value* const_float = builder_.CreateConstFloat(value); + std::cerr << "[DEBUG] visitPrimaryExp: constant dec float " << value + << " created as " << (void*)const_float << std::endl; + return static_cast(const_float); + } + if (ctx->HEX_INT()) { std::string hex = ctx->HEX_INT()->getText(); int value = std::stoi(hex, nullptr, 16); @@ -217,7 +252,7 @@ std::any IRGenImpl::visitLVal(SysYParser::LValContext* ctx) { builder_.CreateLoad(ptr, module_.GetContext().NextTemp())); } } -// 加法表达式 + std::any IRGenImpl::visitAddExp(SysYParser::AddExpContext* ctx) { std::cout << "[DEBUG IRGEN] visitAddExp: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { @@ -243,23 +278,45 @@ std::any IRGenImpl::visitAddExp(SysYParser::AddExpContext* ctx) { } ir::Value* right = std::any_cast(right_any); - std::cerr << "[DEBUG] visitAddExp: left=" << (void*)left << ", right=" << (void*)right << std::endl; + std::cerr << "[DEBUG] visitAddExp: left=" << (void*)left + << ", type=" << (left->GetType()->IsFloat() ? "float" : "int") + << ", right=" << (void*)right + << ", type=" << (right->GetType()->IsFloat() ? "float" : "int") << std::endl; + + // 处理类型转换:如果操作数类型不同,需要进行类型转换 + if (left->GetType()->IsFloat() != right->GetType()->IsFloat()) { + if (left->GetType()->IsFloat()) { + // left是float,right是int,需要将right转换为float + right = builder_.CreateSIToFP(right, ir::Type::GetFloatType()); + } else { + // right是float,left是int,需要将left转换为float + left = builder_.CreateSIToFP(left, ir::Type::GetFloatType()); + } + } // 根据操作符生成相应的指令 if (ctx->AddOp()) { - return static_cast( - builder_.CreateAdd(left, right, module_.GetContext().NextTemp())); + if (left->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFAdd(left, right, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateAdd(left, right, module_.GetContext().NextTemp())); + } } else if (ctx->SubOp()) { - return static_cast( - builder_.CreateSub(left, right, module_.GetContext().NextTemp())); + if (left->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFSub(left, right, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateSub(left, right, module_.GetContext().NextTemp())); + } } throw std::runtime_error(FormatError("irgen", "未知的加法操作符")); } -// 在 IRGenExp.cpp 中添加 -// visitMulExp std::any IRGenImpl::visitMulExp(SysYParser::MulExpContext* ctx) { std::cout << "[DEBUG IRGEN] visitMulExp: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { @@ -285,14 +342,45 @@ std::any IRGenImpl::visitMulExp(SysYParser::MulExpContext* ctx) { } ir::Value* right = std::any_cast(right_any); + std::cerr << "[DEBUG] visitMulExp: left=" << (void*)left + << ", type=" << (left->GetType()->IsFloat() ? "float" : "int") + << ", right=" << (void*)right + << ", type=" << (right->GetType()->IsFloat() ? "float" : "int") << std::endl; + + // 处理类型转换:如果操作数类型不同,需要进行类型转换 + if (left->GetType()->IsFloat() != right->GetType()->IsFloat()) { + if (left->GetType()->IsFloat()) { + // left是float,right是int,需要将right转换为float + right = builder_.CreateSIToFP(right, ir::Type::GetFloatType()); + } else { + // right是float,left是int,需要将left转换为float + left = builder_.CreateSIToFP(left, ir::Type::GetFloatType()); + } + } + // 根据操作符生成指令 if (ctx->MulOp()) { - return static_cast( - builder_.CreateMul(left, right, module_.GetContext().NextTemp())); + if (left->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFMul(left, right, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateMul(left, right, module_.GetContext().NextTemp())); + } } else if (ctx->DivOp()) { - return static_cast( - builder_.CreateDiv(left, right, module_.GetContext().NextTemp())); + if (left->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFDiv(left, right, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateDiv(left, right, module_.GetContext().NextTemp())); + } } else if (ctx->QuoOp()) { + // 取模运算:浮点数不支持取模,只支持整数 + if (left->GetType()->IsFloat() || right->GetType()->IsFloat()) { + throw std::runtime_error( + FormatError("irgen", "浮点数不支持取模运算")); + } return static_cast( builder_.CreateMod(left, right, module_.GetContext().NextTemp())); } @@ -301,6 +389,7 @@ std::any IRGenImpl::visitMulExp(SysYParser::MulExpContext* ctx) { } + // 逻辑与 std::any IRGenImpl::visitLAndExp(SysYParser::LAndExpContext* ctx) { if (!ctx) throw std::runtime_error(FormatError("irgen", "非法逻辑与表达式")); @@ -456,8 +545,6 @@ ir::Function* IRGenImpl::CreateRuntimeFunctionDecl(const std::string& funcName) return nullptr; } - -// 实现一元表达式 std::any IRGenImpl::visitUnaryExp(SysYParser::UnaryExpContext* ctx) { if (!ctx) { throw std::runtime_error(FormatError("irgen", "非法一元表达式")); @@ -482,13 +569,33 @@ std::any IRGenImpl::visitUnaryExp(SysYParser::UnaryExpContext* ctx) { // +x 等价于 x return operand; } else if (op == "-") { - // -x 等价于 0 - x - ir::Value* zero = builder_.CreateConstInt(0); - return static_cast( - builder_.CreateBinary(ir::Opcode::Sub, zero, operand, - module_.GetContext().NextTemp())); + // -x 根据操作数类型选择整数或浮点减法 + if (operand->GetType()->IsFloat()) { + // 浮点取负:0.0 - x + ir::Value* zero_float = builder_.CreateConstFloat(0.0f); + return static_cast( + builder_.CreateFSub(zero_float, operand, module_.GetContext().NextTemp())); + } else { + // 整数取负:0 - x + ir::Value* zero = builder_.CreateConstInt(0); + return static_cast( + builder_.CreateSub(zero, operand, module_.GetContext().NextTemp())); + } } else if (op == "!") { - return builder_.CreateNot(operand, module_.GetContext().NextTemp()); + // 逻辑非运算 + // 先将值转换为bool(与0比较) + ir::Value* zero; + if (operand->GetType()->IsFloat()) { + zero = builder_.CreateConstFloat(0.0f); + // 浮点比较:不等于0 + ir::Value* cmp = builder_.CreateFCmpONE(operand, zero, module_.GetContext().NextTemp()); + // 将bool转换为int + return static_cast( + builder_.CreateZExt(cmp, ir::Type::GetInt32Type())); + } else { + zero = builder_.CreateConstInt(0); + return builder_.CreateNot(operand, module_.GetContext().NextTemp()); + } } } @@ -610,22 +717,59 @@ std::any IRGenImpl::visitRelExp(SysYParser::RelExpContext* ctx) { auto right_any = ctx->addExp()->accept(this); auto* lhs = std::any_cast(left_any); auto* rhs = std::any_cast(right_any); - + + std::cerr << "[DEBUG] visitRelExp: left=" << (void*)lhs + << ", type=" << (lhs->GetType()->IsFloat() ? "float" : "int") + << ", right=" << (void*)rhs + << ", type=" << (rhs->GetType()->IsFloat() ? "float" : "int") << std::endl; + + // 处理类型转换:如果操作数类型不同,需要进行类型转换 + if (lhs->GetType()->IsFloat() != rhs->GetType()->IsFloat()) { + if (lhs->GetType()->IsFloat()) { + // lhs是float,rhs是int,需要将rhs转换为float + rhs = builder_.CreateSIToFP(rhs, ir::Type::GetFloatType()); + } else { + // rhs是float,lhs是int,需要将lhs转换为float + lhs = builder_.CreateSIToFP(lhs, ir::Type::GetFloatType()); + } + } + + // 根据操作数和类型选择指令 if (ctx->LOp()) { - return static_cast( - builder_.CreateICmpLT(lhs, rhs, module_.GetContext().NextTemp())); + if (lhs->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFCmpOLT(lhs, rhs, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateICmpLT(lhs, rhs, module_.GetContext().NextTemp())); + } } if (ctx->GOp()) { - return static_cast( - builder_.CreateICmpGT(lhs, rhs, module_.GetContext().NextTemp())); + if (lhs->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFCmpOGT(lhs, rhs, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateICmpGT(lhs, rhs, module_.GetContext().NextTemp())); + } } if (ctx->LeOp()) { - return static_cast( - builder_.CreateICmpLE(lhs, rhs, module_.GetContext().NextTemp())); + if (lhs->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFCmpOLE(lhs, rhs, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateICmpLE(lhs, rhs, module_.GetContext().NextTemp())); + } } if (ctx->GeOp()) { - return static_cast( - builder_.CreateICmpGE(lhs, rhs, module_.GetContext().NextTemp())); + if (lhs->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFCmpOGE(lhs, rhs, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateICmpGE(lhs, rhs, module_.GetContext().NextTemp())); + } } throw std::runtime_error(FormatError("irgen", "未知关系运算符")); } @@ -637,7 +781,6 @@ std::any IRGenImpl::visitRelExp(SysYParser::RelExpContext* ctx) { throw std::runtime_error(FormatError("irgen", "关系表达式暂未实现")); } -// 相等表达式(支持 ==, !=) std::any IRGenImpl::visitEqExp(SysYParser::EqExpContext* ctx) { if (!ctx) { throw std::runtime_error(FormatError("irgen", "非法相等表达式")); @@ -648,14 +791,41 @@ std::any IRGenImpl::visitEqExp(SysYParser::EqExpContext* ctx) { auto right_any = ctx->relExp()->accept(this); auto* lhs = std::any_cast(left_any); auto* rhs = std::any_cast(right_any); - + + std::cerr << "[DEBUG] visitEqExp: left=" << (void*)lhs + << ", type=" << (lhs->GetType()->IsFloat() ? "float" : "int") + << ", right=" << (void*)rhs + << ", type=" << (rhs->GetType()->IsFloat() ? "float" : "int") << std::endl; + + // 处理类型转换:如果操作数类型不同,需要进行类型转换 + if (lhs->GetType()->IsFloat() != rhs->GetType()->IsFloat()) { + if (lhs->GetType()->IsFloat()) { + // lhs是float,rhs是int,需要将rhs转换为float + rhs = builder_.CreateSIToFP(rhs, ir::Type::GetFloatType()); + } else { + // rhs是float,lhs是int,需要将lhs转换为float + lhs = builder_.CreateSIToFP(lhs, ir::Type::GetFloatType()); + } + } + + // 根据操作符和类型选择指令 if (ctx->EqOp()) { - return static_cast( - builder_.CreateICmpEQ(lhs, rhs, module_.GetContext().NextTemp())); + if (lhs->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFCmpOEQ(lhs, rhs, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateICmpEQ(lhs, rhs, module_.GetContext().NextTemp())); + } } if (ctx->NeOp()) { - return static_cast( - builder_.CreateICmpNE(lhs, rhs, module_.GetContext().NextTemp())); + if (lhs->GetType()->IsFloat()) { + return static_cast( + builder_.CreateFCmpONE(lhs, rhs, module_.GetContext().NextTemp())); + } else { + return static_cast( + builder_.CreateICmpNE(lhs, rhs, module_.GetContext().NextTemp())); + } } throw std::runtime_error(FormatError("irgen", "未知相等运算符")); } @@ -667,6 +837,7 @@ std::any IRGenImpl::visitEqExp(SysYParser::EqExpContext* ctx) { throw std::runtime_error(FormatError("irgen", "相等表达式暂未实现")); } + ir::Value* IRGenImpl::EvalAssign(SysYParser::StmtContext* ctx) { std::cout << "[DEBUG IRGEN] visitCond: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx || !ctx->lVal() || !ctx->exp()) { diff --git a/src/irgen/IRGenFunc.cpp b/src/irgen/IRGenFunc.cpp index 64771f7..f9b42f2 100644 --- a/src/irgen/IRGenFunc.cpp +++ b/src/irgen/IRGenFunc.cpp @@ -158,15 +158,23 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { std::vector> param_types; if (ctx->funcFParams()) { for (auto* param : ctx->funcFParams()->funcFParam()) { - if (!param || !param->bType()) continue; + if (!param || !param->Ident()) continue; + std::string name = param->Ident()->getText(); std::shared_ptr param_ty; + + // 检查 bType 是否存在 + if (!param->bType()) { + throw std::runtime_error(FormatError("irgen", "函数参数缺少类型: " + name)); + } + if (param->bType()->Int()) { param_ty = ir::Type::GetInt32Type(); } else if (param->bType()->Float()) { param_ty = ir::Type::GetFloatType(); } else { - param_ty = ir::Type::GetInt32Type(); + param_ty = ir::Type::GetInt32Type(); // 默认值 } + if (!param->L_BRACK().empty()) { if (param_ty->IsInt32()) { param_ty = ir::Type::GetPtrInt32Type(); @@ -174,22 +182,53 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { param_ty = ir::Type::GetPtrFloatType(); } } + param_types.push_back(param_ty); } } + // 创建函数类型 auto func_type = ir::Type::GetFunctionType(ret_type, param_types); + + // 调试输出 + std::cerr << "[DEBUG] visitFuncDef: 创建函数 " << funcName + << ",返回类型: " << (ret_type->IsVoid() ? "void" : ret_type->IsFloat() ? "float" : "int") + << ",参数数量: " << param_types.size() << std::endl; + + // 创建函数对象 func_ = module_.CreateFunction(funcName, func_type); - builder_.SetInsertPoint(func_->GetEntry()); + + // 检查函数是否成功创建 + if (!func_) { + std::cerr << "[ERROR] visitFuncDef: 创建函数失败,func_ 为 nullptr!" << std::endl; + throw std::runtime_error(FormatError("irgen", "创建函数失败: " + funcName)); + } + + std::cerr << "[DEBUG] visitFuncDef: 函数对象地址: " << (void*)func_ << std::endl; + + // 设置插入点 + auto* entry_block = func_->GetEntry(); + if (!entry_block) { + std::cerr << "[ERROR] visitFuncDef: 函数入口基本块为空!" << std::endl; + throw std::runtime_error(FormatError("irgen", "函数入口基本块为空: " + funcName)); + } + + builder_.SetInsertPoint(entry_block); storage_map_.clear(); param_map_.clear(); - // 函数参数 (按照语义分析、symbol table 定义顺序) + // 函数参数处理 if (ctx->funcFParams()) { for (auto* param : ctx->funcFParams()->funcFParam()) { if (!param || !param->Ident()) continue; std::string name = param->Ident()->getText(); std::shared_ptr param_ty; + + // 再次检查 bType + if (!param->bType()) { + throw std::runtime_error(FormatError("irgen", "函数参数缺少类型: " + name)); + } + if (param->bType()->Int()) { param_ty = ir::Type::GetInt32Type(); } else if (param->bType()->Float()) { @@ -197,6 +236,7 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { } else { param_ty = ir::Type::GetInt32Type(); } + if (!param->L_BRACK().empty()) { if (param_ty->IsInt32()) { param_ty = ir::Type::GetPtrInt32Type(); @@ -204,8 +244,35 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { param_ty = ir::Type::GetPtrFloatType(); } } - auto* arg = func_->AddArgument(std::make_unique(param_ty, name)); - ir::AllocaInst* slot; + + // 检查函数对象是否有效 + if (!func_) { + std::cerr << "[ERROR] visitFuncDef: func_ 在添加参数时变为 nullptr!" << std::endl; + throw std::runtime_error(FormatError("irgen", "函数对象无效")); + } + + std::cerr << "[DEBUG] visitFuncDef: 为函数 " << funcName + << " 添加参数 " << name << ",类型: " + << (param_ty->IsInt32() ? "int32" : param_ty->IsFloat() ? "float" : + param_ty->IsPtrInt32() ? "ptr_int32" : param_ty->IsPtrFloat() ? "ptr_float" : "other") + << std::endl; + + // 创建参数并添加到函数 + auto arg = std::make_unique(param_ty, name); + if (!arg) { + throw std::runtime_error(FormatError("irgen", "创建参数失败: " + name)); + } + + auto* arg_ptr = arg.get(); + auto* added_arg = func_->AddArgument(std::move(arg)); + + if (!added_arg) { + std::cerr << "[ERROR] visitFuncDef: AddArgument 返回 nullptr!" << std::endl; + throw std::runtime_error(FormatError("irgen", "添加参数失败: " + name)); + } + + // 为参数创建存储槽位 + ir::AllocaInst* slot = nullptr; if (param_ty->IsInt32() || param_ty->IsPtrInt32()) { slot = builder_.CreateAllocaI32(module_.GetContext().NextTemp()); } else if (param_ty->IsFloat() || param_ty->IsPtrFloat()) { @@ -213,24 +280,43 @@ std::any IRGenImpl::visitFuncDef(SysYParser::FuncDefContext* ctx) { } else { throw std::runtime_error(FormatError("irgen", "不支持的参数类型")); } - builder_.CreateStore(arg, slot); + + if (!slot) { + throw std::runtime_error(FormatError("irgen", "创建参数存储槽位失败: " + name)); + } + + builder_.CreateStore(added_arg, slot); param_map_[name] = slot; + + std::cerr << "[DEBUG] visitFuncDef: 参数 " << name << " 处理完成" << std::endl; } } // 生成函数体 + std::cerr << "[DEBUG] visitFuncDef: 开始生成函数体" << std::endl; ctx->block()->accept(this); + // 如果函数没有终止指令,添加默认返回 if (!func_->GetEntry()->HasTerminator()) { + std::cerr << "[DEBUG] visitFuncDef: 函数体没有终止指令,添加默认返回" << std::endl; auto retVal = builder_.CreateConstInt(0); builder_.CreateRet(retVal); } - VerifyFunctionStructure(*func_); + // 验证函数结构 + try { + VerifyFunctionStructure(*func_); + } catch (const std::exception& e) { + std::cerr << "[ERROR] visitFuncDef: 验证函数结构失败: " << e.what() << std::endl; + throw; + } + + std::cerr << "[DEBUG] visitFuncDef: 函数 " << funcName << " 生成完成" << std::endl; func_ = nullptr; return {}; } + std::any IRGenImpl::visitBlock(SysYParser::BlockContext* ctx) { std::cout << "[DEBUG IRGEN] visitBlock: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { diff --git a/src/irgen/IRGenStmt.cpp b/src/irgen/IRGenStmt.cpp index 056984a..18c74d7 100644 --- a/src/irgen/IRGenStmt.cpp +++ b/src/irgen/IRGenStmt.cpp @@ -62,26 +62,65 @@ std::any IRGenImpl::visitStmt(SysYParser::StmtContext* ctx) { throw std::runtime_error(FormatError("irgen", "暂不支持的语句类型")); } +// 修改 HandleReturnStmt 函数 + IRGenImpl::BlockFlow IRGenImpl::HandleReturnStmt(SysYParser::StmtContext* ctx) { std::cout << "[DEBUG IRGEN] HandleReturnStmt: " << (ctx ? ctx->getText() : "") << std::endl; if (!ctx) { throw std::runtime_error(FormatError("irgen", "缺少 return 语句")); } - ir::Value* retValue = nullptr; - if (ctx->exp()) { - std::cout << "[DEBUG IRGEN] HandleReturnStmt eval exp: " << ctx->exp()->getText() << std::endl; - retValue = EvalExpr(*ctx->exp()); + // 检查函数是否存在 + if (!func_) { + throw std::runtime_error(FormatError("irgen", "Return语句不在函数中")); } - // 如果没有表达式,返回0(对于int main) - if (!retValue) { - retValue = builder_.CreateConstInt(0); + + // 获取函数类型中的返回类型 + auto func_type = std::dynamic_pointer_cast(func_->GetType()); + if (!func_type) { + throw std::runtime_error(FormatError("irgen", "函数类型无效")); } - builder_.CreateRet(retValue); + auto ret_type = func_type->GetReturnType(); + + if (ret_type->IsVoid()) { + if (ctx->exp()) { + // 表达式被忽略(可计算但不使用) + EvalExpr(*ctx->exp()); + } + // 对于void函数,创建返回指令(不传参数) + builder_.CreateRet(nullptr); + } else { + ir::Value* retValue = nullptr; + if (ctx->exp()) { + retValue = EvalExpr(*ctx->exp()); + if (!retValue) { + throw std::runtime_error(FormatError("irgen", "返回值表达式求值失败")); + } + // 类型转换 + if (retValue->GetType() != ret_type) { + if (ret_type->IsInt32() && retValue->GetType()->IsFloat()) { + retValue = builder_.CreateFPToSI(retValue, ir::Type::GetInt32Type()); + } else if (ret_type->IsFloat() && retValue->GetType()->IsInt32()) { + retValue = builder_.CreateSIToFP(retValue, ir::Type::GetFloatType()); + } + } + } else { + // 无表达式,返回默认值 + if (ret_type->IsInt32()) { + retValue = builder_.CreateConstInt(0); + } else if (ret_type->IsFloat()) { + retValue = builder_.CreateConstFloat(0.0f); + } else { + retValue = builder_.CreateConstInt(0); // fallback + } + } + builder_.CreateRet(retValue); + } return BlockFlow::Terminated; } + // if语句(待实现) IRGenImpl::BlockFlow IRGenImpl::HandleIfStmt(SysYParser::StmtContext* ctx) { std::cout << "[DEBUG IRGEN] HandleIfStmt: " << (ctx ? ctx->getText() : "") << std::endl;