diff --git a/src/mapleall/maple_ir/src/mir_lower.cpp b/src/mapleall/maple_ir/src/mir_lower.cpp index 161c6039c285460e73287026bd6cc929ca659b9a..48586019e6ccfd194e14147907fd5895d32d434b 100644 --- a/src/mapleall/maple_ir/src/mir_lower.cpp +++ b/src/mapleall/maple_ir/src/mir_lower.cpp @@ -480,12 +480,12 @@ BaseNode* MIRLower::LowerEmbeddedCandCior(BaseNode *x, StmtNode *curstmt, BlockN MIRBuilder *builder = mirModule.GetMIRBuilder(); BinaryNode *bnode = static_cast(x); bnode->SetOpnd(LowerEmbeddedCandCior(bnode->Opnd(0), curstmt, blk), 0); - PregIdx pregIdx = mirFunc->GetPregTab()->CreatePreg(PTY_u8); - RegassignNode *regass = builder->CreateStmtRegassign(PTY_u8, pregIdx, bnode->Opnd(0)); + PregIdx pregIdx = mirFunc->GetPregTab()->CreatePreg(x->GetPrimType()); + RegassignNode *regass = builder->CreateStmtRegassign(x->GetPrimType(), pregIdx, bnode->Opnd(0)); blk->InsertBefore(curstmt, regass); LabelIdx labIdx = mirFunc->GetLabelTab()->CreateLabel(); (void)mirFunc->GetLabelTab()->AddToStringLabelMap(labIdx); - BaseNode *cond = builder->CreateExprRegread(PTY_u8, pregIdx); + BaseNode *cond = builder->CreateExprRegread(x->GetPrimType(), pregIdx); CondGotoNode *cgoto = mirFunc->GetCodeMempool()->New( x->GetOpCode() == OP_cior ? OP_brtrue : OP_brfalse); cgoto->SetOpnd(cond, 0); @@ -493,12 +493,12 @@ BaseNode* MIRLower::LowerEmbeddedCandCior(BaseNode *x, StmtNode *curstmt, BlockN blk->InsertBefore(curstmt, cgoto); bnode->SetOpnd(LowerEmbeddedCandCior(bnode->Opnd(1), curstmt, blk), 1); - regass = builder->CreateStmtRegassign(PTY_u8, pregIdx, bnode->Opnd(1)); + regass = builder->CreateStmtRegassign(x->GetPrimType(), pregIdx, bnode->Opnd(1)); blk->InsertBefore(curstmt, regass); LabelNode *lbl = mirFunc->GetCodeMempool()->New(); lbl->SetLabelIdx(labIdx); blk->InsertBefore(curstmt, lbl); - return builder->CreateExprRegread(PTY_u8, pregIdx); + return builder->CreateExprRegread(x->GetPrimType(), pregIdx); } else { for (size_t i = 0; i < x->GetNumOpnds(); i++) { x->SetOpnd(LowerEmbeddedCandCior(x->Opnd(i), curstmt, blk), i);