diff --git a/src/SysYFIRBuilder/IRBuilder.cpp b/src/SysYFIRBuilder/IRBuilder.cpp index a3b503d..5db42ba 100644 --- a/src/SysYFIRBuilder/IRBuilder.cpp +++ b/src/SysYFIRBuilder/IRBuilder.cpp @@ -896,12 +896,13 @@ namespace SysYF } builder->set_insert_point(true_bb); // cond_bb判断域结束,进入true_bb执行体内部 - builder->create_store(result, CONST_INT(true)); + builder->create_store(CONST_INT(true),result); builder->create_br(after_bb); builder->set_insert_point(false_bb); - builder->create_store(result, CONST_INT(false)); + builder->create_store(CONST_INT(false),result); builder->create_br(after_bb); + // true_bb和false_bb IR结束后都要无条件br到after_bb builder->set_insert_point(after_bb); @@ -964,11 +965,11 @@ namespace SysYF } builder->set_insert_point(true_bb); // cond_bb判断域结束,进入true_bb执行体内部 - builder->create_store(result, CONST_INT(true)); + builder->create_store(CONST_INT(true),result); builder->create_br(after_bb); builder->set_insert_point(false_bb); - builder->create_store(result, CONST_INT(false)); + builder->create_store(CONST_INT(false),result); builder->create_br(after_bb); // true_bb和false_bb IR结束后都要无条件br到after_bb