From 192639655430cfddd0ad28d0b470880de76e34cf Mon Sep 17 00:00:00 2001 From: Fred Chow Date: Tue, 23 Nov 2021 09:40:17 -0800 Subject: [PATCH] In MIRLower::LowerEmbeddedCandCior(), the preg to store result should not be hard-coded to PTY_u8 --- src/mapleall/maple_ir/src/mir_lower.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mapleall/maple_ir/src/mir_lower.cpp b/src/mapleall/maple_ir/src/mir_lower.cpp index 161c6039c2..48586019e6 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); -- Gitee